You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@superset.apache.org by "michael-s-molina (via GitHub)" <gi...@apache.org> on 2026/02/11 19:52:08 UTC
[PR] feat: Show the username as secondary text beneath the owner name in all owner selectors [superset]
michael-s-molina opened a new pull request, #37906:
URL: https://github.com/apache/superset/pull/37906
### SUMMARY
Show the username as secondary text beneath the owner name in all 4 owner selectors (Chart Properties, Dashboard Properties, Dataset Editor, Alert/Report Modal). This helps disambiguate owners with identical names.
### BEFORE/AFTER SCREENSHOTS OR ANIMATED GIF
<img width="470" height="241" alt="Screenshot 2026-02-11 at 16 44 13" src="https://github.com/user-attachments/assets/f7bd293d-a510-4c05-b18a-e97cfbb5e59c" />
### TESTING INSTRUCTIONS
1. Open **Chart Properties** modal → Owners field should show username below each name in the dropdown and in selected tags
2. Open **Dashboard Properties** modal → Access section → same behavior for Owners
3. Open **Dataset Editor** → Owners selector → same behavior
4. Open **Alert/Report** create/edit modal → Owners selector → same behavior
5. Verify search/filter still works by typing a name in each selector
6. Verify owners without a username only show the name (no blank line)
### ADDITIONAL INFORMATION
<!--- Check any relevant boxes with "x" -->
<!--- HINT: Include "Fixes #nnn" if you are fixing an existing issue -->
- [ ] Has associated issue:
- [ ] Required feature flags:
- [ ] 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
--
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: notifications-unsubscribe@superset.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
---------------------------------------------------------------------
To unsubscribe, e-mail: notifications-unsubscribe@superset.apache.org
For additional commands, e-mail: notifications-help@superset.apache.org
Re: [PR] feat: Show the username as secondary text beneath the owner name in all owner selectors [superset]
Posted by "bito-code-review[bot] (via GitHub)" <gi...@apache.org>.
bito-code-review[bot] commented on PR #37906:
URL: https://github.com/apache/superset/pull/37906#issuecomment-3886706138
AI Code Review is in progress (usually takes 3 to 15 minutes unless it's a very large PR).
--
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: notifications-unsubscribe@superset.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
---------------------------------------------------------------------
To unsubscribe, e-mail: notifications-unsubscribe@superset.apache.org
For additional commands, e-mail: notifications-help@superset.apache.org
Re: [PR] feat: Show the username as secondary text beneath the owner name in all owner selectors [superset]
Posted by "codecov[bot] (via GitHub)" <gi...@apache.org>.
codecov[bot] commented on PR #37906:
URL: https://github.com/apache/superset/pull/37906#issuecomment-3886794323
## [Codecov](https://app.codecov.io/gh/apache/superset/pull/37906?dropdown=coverage&src=pr&el=h1&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=apache) Report
:white_check_mark: All modified and coverable lines are covered by tests.
:white_check_mark: Project coverage is 43.21%. Comparing base ([`88a14f2`](https://app.codecov.io/gh/apache/superset/commit/88a14f2ba0dc7a1068ac32b6c1883b3d17fc9007?dropdown=coverage&el=desc&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=apache)) to head ([`2b64599`](https://app.codecov.io/gh/apache/superset/commit/2b64599eeb48ec7ff44f0ad85b929ba4d4d5af0a?dropdown=coverage&el=desc&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=apache)).
:warning: Report is 9 commits behind head on master.
<details><summary>Additional details and impacted files</summary>
```diff
@@ Coverage Diff @@
## master #37906 +/- ##
===========================================
+ Coverage 0 43.21% +43.21%
===========================================
Files 0 668 +668
Lines 0 51268 +51268
Branches 0 5770 +5770
===========================================
+ Hits 0 22156 +22156
- Misses 0 28807 +28807
- Partials 0 305 +305
```
| [Flag](https://app.codecov.io/gh/apache/superset/pull/37906/flags?src=pr&el=flags&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=apache) | Coverage Δ | |
|---|---|---|
| [hive](https://app.codecov.io/gh/apache/superset/pull/37906/flags?src=pr&el=flag&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=apache) | `41.51% <100.00%> (?)` | |
| [presto](https://app.codecov.io/gh/apache/superset/pull/37906/flags?src=pr&el=flag&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=apache) | `41.52% <100.00%> (?)` | |
| [python](https://app.codecov.io/gh/apache/superset/pull/37906/flags?src=pr&el=flag&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=apache) | `43.21% <100.00%> (?)` | |
| [unit](https://app.codecov.io/gh/apache/superset/pull/37906/flags?src=pr&el=flag&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=apache) | `100.00% <ø> (?)` | |
Flags with carried forward coverage won't be shown. [Click here](https://docs.codecov.io/docs/carryforward-flags?utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=apache#carryforward-flags-in-the-pull-request-comment) to find out more.
</details>
[:umbrella: View full report in Codecov by Sentry](https://app.codecov.io/gh/apache/superset/pull/37906?dropdown=coverage&src=pr&el=continue&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=apache).
:loudspeaker: Have feedback on the report? [Share it here](https://about.codecov.io/codecov-pr-comment-feedback/?utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=apache).
<details><summary> :rocket: New features to boost your workflow: </summary>
- :snowflake: [Test Analytics](https://docs.codecov.com/docs/test-analytics): Detect flaky tests, report on failures, and find test suite problems.
- :package: [JS Bundle Analysis](https://docs.codecov.com/docs/javascript-bundle-analysis): Save yourself from yourself by tracking and limiting bundle sizes in JS merges.
</details>
--
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: notifications-unsubscribe@superset.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
---------------------------------------------------------------------
To unsubscribe, e-mail: notifications-unsubscribe@superset.apache.org
For additional commands, e-mail: notifications-help@superset.apache.org
Re: [PR] feat(owners): display email in owner selectors [superset]
Posted by "michael-s-molina (via GitHub)" <gi...@apache.org>.
michael-s-molina commented on code in PR #37906:
URL: https://github.com/apache/superset/pull/37906#discussion_r2799166405
##########
superset-frontend/src/dashboard/components/PropertiesModal/index.tsx:
##########
@@ -240,10 +242,15 @@ const PropertiesModal = ({
}
};
- const handleOnChangeOwners = (owners: { value: number; label: string }[]) => {
- const parsedOwners: Owners = ensureIsArray(owners).map(o => ({
+ const handleOnChangeOwners = (
+ owners: { value: number; label: string }[],
+ options: Record<string, unknown>[],
+ ) => {
+ const parsedOwners: Owners = ensureIsArray(owners).map((o, i) => ({
id: o.value,
- full_name: o.label,
+ full_name:
+ (options?.[i]?.[OWNER_TEXT_LABEL_PROP] as string) ||
+ (typeof o.label === 'string' ? o.label : ''),
}));
Review Comment:
Fixed
--
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: notifications-unsubscribe@superset.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
---------------------------------------------------------------------
To unsubscribe, e-mail: notifications-unsubscribe@superset.apache.org
For additional commands, e-mail: notifications-help@superset.apache.org
Re: [PR] feat(owners): display email in owner selectors [superset]
Posted by "bito-code-review[bot] (via GitHub)" <gi...@apache.org>.
bito-code-review[bot] commented on PR #37906:
URL: https://github.com/apache/superset/pull/37906#issuecomment-3891477296
AI Code Review is in progress (usually takes 3 to 15 minutes unless it's a very large PR).
<details>
<summary>
Bito Usage Guide
</summary>
**Commands**
Type the following command in the pull request comment and save the comment.
- `/review` - Manually triggers a full AI review.
- `/pause` - Pauses automatic reviews on this pull request.
- `/resume` - Resumes automatic reviews.
- `/resolve` - Marks all Bito-posted review comments as resolved.
- `/abort` - Cancels all in-progress reviews.
Refer to the <a href="https://docs.bito.ai/bito-dev-agents/ai-code-review-agent/available-commands" target="_blank" rel="noopener noreferrer">documentation</a> for additional commands.
**Configuration**
This repository uses `Superset` You can customize the agent settings <a href="https://alpha.bito.ai/home/ai-agents/code-review-agent" target="_blank" rel="noopener noreferrer">here</a> or contact your Bito workspace admin at evan@preset.io.
**Documentation & Help**
- <a href="https://docs.bito.ai/bito-dev-agents/ai-code-review-agent/getting-started/install-run-using-bito-cloud/create-or-customize-an-agent-instance" target="_blank" rel="noopener noreferrer">Customize agent settings</a>
- <a href="https://docs.bito.ai/bito-dev-agents/ai-code-review-agent/implementing-custom-code-review-rules" target="_blank" rel="noopener noreferrer">Review rules</a>
- <a href="https://docs.bito.ai/bito-dev-agents/ai-code-review-agent" target="_blank" rel="noopener noreferrer">General documentation</a>
- <a href="https://docs.bito.ai/bito-dev-agents/ai-code-review-agent/faqs" target="_blank" rel="noopener noreferrer">FAQ</a>
</details>
--
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: notifications-unsubscribe@superset.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
---------------------------------------------------------------------
To unsubscribe, e-mail: notifications-unsubscribe@superset.apache.org
For additional commands, e-mail: notifications-help@superset.apache.org
Re: [PR] feat(owners): display email in owner selectors [superset]
Posted by "michael-s-molina (via GitHub)" <gi...@apache.org>.
michael-s-molina commented on code in PR #37906:
URL: https://github.com/apache/superset/pull/37906#discussion_r2799213865
##########
superset-frontend/src/features/alerts/AlertReportModal.tsx:
##########
@@ -1936,12 +1956,21 @@ const AlertReportModal: FunctionComponent<AlertReportModalProps> = ({
label: (resource.database as DatabaseObject).database_name,
}
: undefined,
- owners: (alert?.owners || []).map(owner => ({
- value: (owner as MetaObject).value || owner.id,
- label:
+ owners: (alert?.owners || []).map(owner => {
+ const ownerName =
(owner as MetaObject).label ||
- `${(owner as Owner).first_name} ${(owner as Owner).last_name}`,
- })),
+ `${(owner as Owner).first_name} ${(owner as Owner).last_name}`;
+ return {
Review Comment:
Fixed
--
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: notifications-unsubscribe@superset.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
---------------------------------------------------------------------
To unsubscribe, e-mail: notifications-unsubscribe@superset.apache.org
For additional commands, e-mail: notifications-help@superset.apache.org
Re: [PR] feat(owners): display email in owner selectors [superset]
Posted by "github-actions[bot] (via GitHub)" <gi...@apache.org>.
github-actions[bot] commented on PR #37906:
URL: https://github.com/apache/superset/pull/37906#issuecomment-3892095217
🎪 [Showtime](https://github.com/mistercrunch/superset-showtime) deployed environment on [GHA](https://github.com/apache/superset/actions/runs/21955241995) for [36a7947](https://github.com/apache/superset/commit/36a7947)
• **Environment:** http://35.93.215.207:8080 (admin/admin)
• **Lifetime:** 48h auto-cleanup
• **Updates:** New commits create fresh environments automatically
--
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: notifications-unsubscribe@superset.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
---------------------------------------------------------------------
To unsubscribe, e-mail: notifications-unsubscribe@superset.apache.org
For additional commands, e-mail: notifications-help@superset.apache.org
Re: [PR] feat(owners): display email in owner selectors [superset]
Posted by "bito-code-review[bot] (via GitHub)" <gi...@apache.org>.
bito-code-review[bot] commented on PR #37906:
URL: https://github.com/apache/superset/pull/37906#issuecomment-3892348687
AI Code Review is in progress (usually takes 3 to 15 minutes unless it's a very large PR).
<details>
<summary>
Bito Usage Guide
</summary>
**Commands**
Type the following command in the pull request comment and save the comment.
- `/review` - Manually triggers a full AI review.
- `/pause` - Pauses automatic reviews on this pull request.
- `/resume` - Resumes automatic reviews.
- `/resolve` - Marks all Bito-posted review comments as resolved.
- `/abort` - Cancels all in-progress reviews.
Refer to the <a href="https://docs.bito.ai/bito-dev-agents/ai-code-review-agent/available-commands" target="_blank" rel="noopener noreferrer">documentation</a> for additional commands.
**Configuration**
This repository uses `Superset` You can customize the agent settings <a href="https://alpha.bito.ai/home/ai-agents/code-review-agent" target="_blank" rel="noopener noreferrer">here</a> or contact your Bito workspace admin at evan@preset.io.
**Documentation & Help**
- <a href="https://docs.bito.ai/bito-dev-agents/ai-code-review-agent/getting-started/install-run-using-bito-cloud/create-or-customize-an-agent-instance" target="_blank" rel="noopener noreferrer">Customize agent settings</a>
- <a href="https://docs.bito.ai/bito-dev-agents/ai-code-review-agent/implementing-custom-code-review-rules" target="_blank" rel="noopener noreferrer">Review rules</a>
- <a href="https://docs.bito.ai/bito-dev-agents/ai-code-review-agent" target="_blank" rel="noopener noreferrer">General documentation</a>
- <a href="https://docs.bito.ai/bito-dev-agents/ai-code-review-agent/faqs" target="_blank" rel="noopener noreferrer">FAQ</a>
</details>
--
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: notifications-unsubscribe@superset.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
---------------------------------------------------------------------
To unsubscribe, e-mail: notifications-unsubscribe@superset.apache.org
For additional commands, e-mail: notifications-help@superset.apache.org
Re: [PR] feat: Show the username as secondary text beneath the owner name in all owner selectors [superset]
Posted by "netlify[bot] (via GitHub)" <gi...@apache.org>.
netlify[bot] commented on PR #37906:
URL: https://github.com/apache/superset/pull/37906#issuecomment-3886749065
### <span aria-hidden="true">✅</span> Deploy Preview for *superset-docs-preview* ready!
| Name | Link |
|:-:|------------------------|
|<span aria-hidden="true">🔨</span> Latest commit | 2b64599eeb48ec7ff44f0ad85b929ba4d4d5af0a |
|<span aria-hidden="true">🔍</span> Latest deploy log | https://app.netlify.com/projects/superset-docs-preview/deploys/698cdde9e7f3b9000847f78c |
|<span aria-hidden="true">😎</span> Deploy Preview | [https://deploy-preview-37906--superset-docs-preview.netlify.app](https://deploy-preview-37906--superset-docs-preview.netlify.app) |
|<span aria-hidden="true">📱</span> Preview on mobile | <details><summary> Toggle QR Code... </summary><br /><br /><br /><br />_Use your smartphone camera to open QR code link._</details> |
---
<!-- [superset-docs-preview Preview](https://deploy-preview-37906--superset-docs-preview.netlify.app) -->
_To edit notification comments on pull requests, go to your [Netlify project configuration](https://app.netlify.com/projects/superset-docs-preview/configuration/notifications#deploy-notifications)._
--
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: notifications-unsubscribe@superset.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
---------------------------------------------------------------------
To unsubscribe, e-mail: notifications-unsubscribe@superset.apache.org
For additional commands, e-mail: notifications-help@superset.apache.org
Re: [PR] feat(owners): display email in owner selectors [superset]
Posted by "github-actions[bot] (via GitHub)" <gi...@apache.org>.
github-actions[bot] commented on PR #37906:
URL: https://github.com/apache/superset/pull/37906#issuecomment-3891391729
🎪 [Showtime](https://github.com/mistercrunch/superset-showtime) is building environment on [GHA](https://github.com/apache/superset/actions/runs/21951350491) for [4dfe87d](https://github.com/apache/superset/commit/4dfe87d)
--
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: notifications-unsubscribe@superset.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
---------------------------------------------------------------------
To unsubscribe, e-mail: notifications-unsubscribe@superset.apache.org
For additional commands, e-mail: notifications-help@superset.apache.org
Re: [PR] feat(owners): display email in owner selectors [superset]
Posted by "github-actions[bot] (via GitHub)" <gi...@apache.org>.
github-actions[bot] commented on PR #37906:
URL: https://github.com/apache/superset/pull/37906#issuecomment-3891265925
🎪 [Showtime](https://github.com/mistercrunch/superset-showtime) is building environment on [GHA](https://github.com/apache/superset/actions/runs/21950500915) for [2111e2b](https://github.com/apache/superset/commit/2111e2b)
--
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: notifications-unsubscribe@superset.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
---------------------------------------------------------------------
To unsubscribe, e-mail: notifications-unsubscribe@superset.apache.org
For additional commands, e-mail: notifications-help@superset.apache.org
Re: [PR] feat(owners): display email in owner selectors [superset]
Posted by "michael-s-molina (via GitHub)" <gi...@apache.org>.
michael-s-molina commented on code in PR #37906:
URL: https://github.com/apache/superset/pull/37906#discussion_r2799161765
##########
superset/charts/schemas.py:
##########
@@ -1671,6 +1671,7 @@ class UserSchema(Schema):
id = fields.Int()
first_name = fields.String()
last_name = fields.String()
+ email = fields.String()
Review Comment:
False positive
--
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: notifications-unsubscribe@superset.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
---------------------------------------------------------------------
To unsubscribe, e-mail: notifications-unsubscribe@superset.apache.org
For additional commands, e-mail: notifications-help@superset.apache.org
Re: [PR] feat(owners): display email in owner selectors [superset]
Posted by "github-actions[bot] (via GitHub)" <gi...@apache.org>.
github-actions[bot] commented on PR #37906:
URL: https://github.com/apache/superset/pull/37906#issuecomment-3891464858
🎪 [Showtime](https://github.com/mistercrunch/superset-showtime) deployed environment on [GHA](https://github.com/apache/superset/actions/runs/21951350491) for [4dfe87d](https://github.com/apache/superset/commit/4dfe87d)
• **Environment:** http://35.91.160.214:8080 (admin/admin)
• **Lifetime:** 48h auto-cleanup
• **Updates:** New commits create fresh environments automatically
--
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: notifications-unsubscribe@superset.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
---------------------------------------------------------------------
To unsubscribe, e-mail: notifications-unsubscribe@superset.apache.org
For additional commands, e-mail: notifications-help@superset.apache.org
Re: [PR] feat(owners): display email in owner selectors [superset]
Posted by "bito-code-review[bot] (via GitHub)" <gi...@apache.org>.
bito-code-review[bot] commented on code in PR #37906:
URL: https://github.com/apache/superset/pull/37906#discussion_r2799730435
##########
superset/datasets/schemas.py:
##########
@@ -414,6 +414,7 @@ class DatasetColumnDrillInfoSchema(Schema):
class UserSchema(Schema):
first_name = fields.String()
last_name = fields.String()
+ email = fields.String()
Review Comment:
<div>
<div id="suggestion">
<div id="issue"><b>API Response Field Change</b></div>
<div id="fix">
This changes the UserSchema from serializing 'username' to 'email', which alters the JSON response for the dataset drill_info API. User objects in 'owners', 'created_by', and 'changed_by' will now include 'email' instead of 'username'. While this makes datasets consistent with charts, it may break clients expecting 'username'. The security API still uses 'username', so consider standardizing all UserSchemas.
</div>
</div>
<small><i>Code Review Run #17ab66</i></small>
</div>
---
Should Bito avoid suggestions like this for future reviews? (<a href=https://alpha.bito.ai/home/ai-agents/review-rules>Manage Rules</a>)
- [ ] Yes, avoid them
--
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: notifications-unsubscribe@superset.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
---------------------------------------------------------------------
To unsubscribe, e-mail: notifications-unsubscribe@superset.apache.org
For additional commands, e-mail: notifications-help@superset.apache.org
Re: [PR] feat(owners): display email in owner selectors [superset]
Posted by "codeant-ai-for-open-source[bot] (via GitHub)" <gi...@apache.org>.
codeant-ai-for-open-source[bot] commented on code in PR #37906:
URL: https://github.com/apache/superset/pull/37906#discussion_r2799108062
##########
superset-frontend/src/dashboard/components/PropertiesModal/index.tsx:
##########
@@ -240,10 +242,15 @@ const PropertiesModal = ({
}
};
- const handleOnChangeOwners = (owners: { value: number; label: string }[]) => {
- const parsedOwners: Owners = ensureIsArray(owners).map(o => ({
+ const handleOnChangeOwners = (
+ owners: { value: number; label: string }[],
+ options: Record<string, unknown>[],
+ ) => {
+ const parsedOwners: Owners = ensureIsArray(owners).map((o, i) => ({
id: o.value,
- full_name: o.label,
+ full_name:
+ (options?.[i]?.[OWNER_TEXT_LABEL_PROP] as string) ||
+ (typeof o.label === 'string' ? o.label : ''),
}));
Review Comment:
**Suggestion:** When dashboard owners are changed, the updated owners stored in state only retain the full name and drop the email/username, so subsequent renders of the owners selector lose the secondary username line for those owners; the handler should also persist the email from the AsyncSelect options into the `owners` state. [logic error]
<details>
<summary><b>Severity Level:</b> Major ⚠️</summary>
```mdx
- ⚠️ Owners selector loses username subtitle after editing owners.
- ⚠️ Harder to distinguish owners with identical names.
```
</details>
```suggestion
import {
OWNER_TEXT_LABEL_PROP,
OWNER_EMAIL_PROP,
} from 'src/features/owners/OwnerSelectLabel';
import { fetchTags, OBJECT_TYPES } from 'src/features/tags/tags';
import {
applyColors,
getColorNamespace,
getFreshLabelsColorMapEntries,
} from 'src/utils/colorScheme';
import { useDispatch } from 'react-redux';
import {
setColorScheme,
setDashboardMetadata,
} from 'src/dashboard/actions/dashboardState';
import { areObjectsEqual } from 'src/reduxUtils';
import { StandardModal, useModalValidation } from 'src/components/Modal';
import {
BasicInfoSection,
AccessSection,
StylingSection,
RefreshSection,
CertificationSection,
AdvancedSection,
} from './sections';
type PropertiesModalProps = {
dashboardId: number;
dashboardTitle?: string;
dashboardInfo?: Record<string, any>;
show?: boolean;
onHide?: () => void;
colorScheme?: string;
onSubmit?: (params: Record<string, any>) => void;
addSuccessToast: (message: string) => void;
addDangerToast: (message: string) => void;
onlyApply?: boolean;
};
type Roles = { id: number; name: string }[];
type Owners = {
id: number;
full_name?: string;
first_name?: string;
last_name?: string;
email?: string;
}[];
type DashboardInfo = {
id: number;
title: string;
slug: string;
certifiedBy: string;
certificationDetails: string;
isManagedExternally: boolean;
metadata: Record<string, any>;
common?: {
conf?: {
SUPERSET_DASHBOARD_PERIODICAL_REFRESH_LIMIT?: number;
};
};
};
const PropertiesModal = ({
addSuccessToast,
addDangerToast,
colorScheme: currentColorScheme,
dashboardId,
dashboardInfo: currentDashboardInfo,
dashboardTitle,
onHide = () => {},
onlyApply = false,
onSubmit = () => {},
show = false,
}: PropertiesModalProps) => {
const dispatch = useDispatch();
const [form] = Form.useForm();
const [isLoading, setIsLoading] = useState(true);
const [isApplying, setIsApplying] = useState(false);
const [colorScheme, setCurrentColorScheme] = useState(currentColorScheme);
const [jsonMetadata, setJsonMetadata] = useState('');
const [dashboardInfo, setDashboardInfo] = useState<DashboardInfo>();
// JSON validation for metadata
const jsonAnnotations = useJsonValidation(jsonMetadata, {
errorPrefix: 'Invalid JSON metadata',
});
const [owners, setOwners] = useState<Owners>([]);
const [roles, setRoles] = useState<Roles>([]);
const saveLabel = onlyApply ? t('Apply') : t('Save');
const [tags, setTags] = useState<TagType[]>([]);
const [customCss, setCustomCss] = useState('');
const [refreshFrequency, setRefreshFrequency] = useState(0);
const [selectedThemeId, setSelectedThemeId] = useState<number | null>(null);
const [showChartTimestamps, setShowChartTimestamps] = useState(false);
const [themes, setThemes] = useState<
Array<{
id: number;
theme_name: string;
}>
>([]);
const categoricalSchemeRegistry = getCategoricalSchemeRegistry();
const originalDashboardMetadata = useRef<Record<string, any>>({});
const handleErrorResponse = async (response: Response) => {
const { error, statusText, message } = await getClientErrorObject(response);
let errorText = error || statusText || t('An error has occurred');
if (
typeof message === 'object' &&
'json_metadata' in message &&
typeof (message as { json_metadata: unknown }).json_metadata === 'string'
) {
errorText = (message as { json_metadata: string }).json_metadata;
} else if (typeof message === 'string') {
errorText = message;
if (message === 'Forbidden') {
errorText = t('You do not have permission to edit this dashboard');
}
}
addDangerToast(String(errorText));
};
const handleDashboardData = useCallback(
dashboardData => {
const {
id,
dashboard_title,
slug,
certified_by,
certification_details,
owners,
roles,
metadata,
is_managed_externally,
theme,
css,
} = dashboardData;
const dashboardInfo = {
id,
title: dashboard_title,
slug: slug || '',
certifiedBy: certified_by || '',
certificationDetails: certification_details || '',
isManagedExternally: is_managed_externally || false,
css: css || '',
metadata,
};
form.setFieldsValue(dashboardInfo);
setDashboardInfo(dashboardInfo);
setOwners(owners);
setRoles(roles);
setCustomCss(css || '');
setCurrentColorScheme(metadata?.color_scheme);
setSelectedThemeId(theme?.id || null);
const metaDataCopy = omit(metadata, [
'positions',
'shared_label_colors',
'map_label_colors',
'color_scheme_domain',
'show_chart_timestamps',
]);
setJsonMetadata(metaDataCopy ? jsonStringify(metaDataCopy) : '');
setRefreshFrequency(metadata?.refresh_frequency || 0);
setShowChartTimestamps(metadata?.show_chart_timestamps ?? false);
originalDashboardMetadata.current = metadata;
},
[form],
);
const fetchDashboardDetails = useCallback(() => {
// We fetch the dashboard details because not all code
// that renders this component have all the values we need.
// At some point when we have a more consistent frontend
// datamodel, the dashboard could probably just be passed as a prop.
SupersetClient.get({
endpoint: `/api/v1/dashboard/${dashboardId}`,
}).then(response => {
const dashboard = response.json.result;
const jsonMetadataObj = dashboard.json_metadata?.length
? JSON.parse(dashboard.json_metadata)
: {};
handleDashboardData({
...dashboard,
metadata: jsonMetadataObj,
});
setIsLoading(false);
}, handleErrorResponse);
}, [dashboardId, handleDashboardData]);
const getJsonMetadata = () => {
try {
const jsonMetadataObj = jsonMetadata?.length
? JSON.parse(jsonMetadata)
: {};
return jsonMetadataObj;
} catch (_) {
return {};
}
};
const handleOnChangeOwners = (
owners: { value: number; label: string }[],
options: Record<string, unknown>[],
) => {
const parsedOwners: Owners = ensureIsArray(owners).map((o, i) => {
const fullName =
(options?.[i]?.[OWNER_TEXT_LABEL_PROP] as string) ||
(typeof o.label === 'string' ? o.label : '');
const email =
(options?.[i]?.[OWNER_EMAIL_PROP] as string | undefined) || undefined;
return {
id: o.value,
full_name: fullName,
email,
};
});
```
<details>
<summary><b>Steps of Reproduction ✅ </b></summary>
```mdx
1. Open a dashboard and click "Edit dashboard properties" to open `PropertiesModal`
(`superset-frontend/src/dashboard/components/PropertiesModal/index.tsx`), which fetches
data from `/api/v1/dashboard/<id>` and calls `handleDashboardData` around lines 88–135,
setting `owners` state via `setOwners(owners)` with owner objects that include `email`.
2. In the modal's "Access & ownership" section rendered by `AccessSection` (passed
`owners` and `onChangeOwners` at the bottom of `index.tsx`), modify the owners list (e.g.,
add or remove an owner) so the owners AsyncSelect triggers the `onChangeOwners` callback.
3. The callback `handleOnChangeOwners` at lines ~232–255 receives `(owners, options)` and
maps each selection to `{ id, full_name }`, explicitly omitting the `email` field defined
in the `Owners` type, then calls `setOwners(parsedOwners)`, replacing previously
email-rich owner objects with ones containing only `id` and `full_name`.
4. After this state update, React re-renders `AccessSection` with the updated `owners`
prop that now lacks `email`, so any UI in the owners selector (using `OwnerSelectLabel`
from `src/features/owners/OwnerSelectLabel`) that relies on `owner.email` or associated
option metadata to render the secondary username line no longer has that data, and the
username/secondary text disappears for the modified owners until the modal is closed and
reopened (which reloads full owner data via `handleDashboardData`).
```
</details>
<details>
<summary><b>Prompt for AI Agent 🤖 </b></summary>
```mdx
This is a comment left during a code review.
**Path:** superset-frontend/src/dashboard/components/PropertiesModal/index.tsx
**Line:** 41:254
**Comment:**
*Logic Error: When dashboard owners are changed, the updated owners stored in state only retain the full name and drop the email/username, so subsequent renders of the owners selector lose the secondary username line for those owners; the handler should also persist the email from the AsyncSelect options into the `owners` state.
Validate the correctness of the flagged issue. If correct, How can I resolve this? If you propose a fix, implement it and please make it concise.
```
</details>
<a href='https://app.codeant.ai/feedback?pr_url=https%3A%2F%2Fgithub.com%2Fapache%2Fsuperset%2Fpull%2F37906&comment_hash=be6e720b8acbd98ee108fe57cbdb663199e23fdabe219f536e941189671c596b&reaction=like'>👍</a> | <a href='https://app.codeant.ai/feedback?pr_url=https%3A%2F%2Fgithub.com%2Fapache%2Fsuperset%2Fpull%2F37906&comment_hash=be6e720b8acbd98ee108fe57cbdb663199e23fdabe219f536e941189671c596b&reaction=dislike'>👎</a>
##########
superset/charts/schemas.py:
##########
@@ -1671,6 +1671,7 @@ class UserSchema(Schema):
id = fields.Int()
first_name = fields.String()
last_name = fields.String()
+ email = fields.String()
Review Comment:
**Suggestion:** The schema adds an `email` field to the user instead of a `username` field, which contradicts the feature intent (showing username) and means the API will not provide the data the frontend needs to render usernames, while also unnecessarily exposing email addresses. [logic error]
<details>
<summary><b>Severity Level:</b> Critical 🚨</summary>
```mdx
- ❌ Chart detail owners lack username required for new UI.
- ❌ Email addresses exposed in owners API response.
- ⚠️ Owner selectors cannot show username as secondary text.
```
</details>
```suggestion
username = fields.String()
```
<details>
<summary><b>Steps of Reproduction ✅ </b></summary>
```mdx
1. Start the Superset backend including `superset/charts/schemas.py` from this PR.
2. Call the chart detail API `GET /api/v1/chart/<id>` which uses `ChartGetResponseSchema`
with `owners = fields.List(fields.Nested(UserSchema))` defined in
`superset/charts/schemas.py`.
3. Inspect the JSON `owners` array in the response: each owner object contains `id`,
`first_name`, `last_name`, and `email` (from `UserSchema` at
`superset/charts/schemas.py:1670-1674`), but no `username` field.
4. Open any owner selector (e.g., Chart Properties → Owners) where the UI feature is
specified to show usernames as secondary text; the API does not provide a `username`
field, so the frontend cannot render usernames and instead only has `email`, unnecessarily
exposing email addresses and failing the stated username-based requirement.
```
</details>
<details>
<summary><b>Prompt for AI Agent 🤖 </b></summary>
```mdx
This is a comment left during a code review.
**Path:** superset/charts/schemas.py
**Line:** 1674:1674
**Comment:**
*Logic Error: The schema adds an `email` field to the user instead of a `username` field, which contradicts the feature intent (showing username) and means the API will not provide the data the frontend needs to render usernames, while also unnecessarily exposing email addresses.
Validate the correctness of the flagged issue. If correct, How can I resolve this? If you propose a fix, implement it and please make it concise.
```
</details>
<a href='https://app.codeant.ai/feedback?pr_url=https%3A%2F%2Fgithub.com%2Fapache%2Fsuperset%2Fpull%2F37906&comment_hash=a1d7d44cd1d0a304a4c207fb8d13c145d474d0a581e428251fc889401c198b09&reaction=like'>👍</a> | <a href='https://app.codeant.ai/feedback?pr_url=https%3A%2F%2Fgithub.com%2Fapache%2Fsuperset%2Fpull%2F37906&comment_hash=a1d7d44cd1d0a304a4c207fb8d13c145d474d0a581e428251fc889401c198b09&reaction=dislike'>👎</a>
##########
superset-frontend/src/features/alerts/AlertReportModal.tsx:
##########
@@ -1936,12 +1956,21 @@ const AlertReportModal: FunctionComponent<AlertReportModalProps> = ({
label: (resource.database as DatabaseObject).database_name,
}
: undefined,
- owners: (alert?.owners || []).map(owner => ({
- value: (owner as MetaObject).value || owner.id,
- label:
+ owners: (alert?.owners || []).map(owner => {
+ const ownerName =
(owner as MetaObject).label ||
- `${(owner as Owner).first_name} ${(owner as Owner).last_name}`,
- })),
+ `${(owner as Owner).first_name} ${(owner as Owner).last_name}`;
+ return {
Review Comment:
**Suggestion:** When populating the owners field for an existing alert, the code reads from the `alert` prop instead of the freshly fetched `resource`, so if the prop does not include owners (or is stale), the modal will show no owners and saving will silently drop existing owners for that alert; using `resource.owners` ensures the owners list reflects the current server state. [logic error]
<details>
<summary><b>Severity Level:</b> Critical 🚨</summary>
```mdx
- ❌ Editing alerts can silently remove all existing owners.
- ⚠️ Owners field appears empty despite backend having owners.
- ⚠️ Alert ownership metadata becomes inconsistent with server state.
```
</details>
```suggestion
owners: (resource.owners || []).map(owner => {
const ownerName =
(owner as MetaObject).label ||
`${(owner as Owner).first_name} ${(owner as Owner).last_name}`;
return {
value: (owner as MetaObject).value || (owner as Owner).id,
```
<details>
<summary><b>Steps of Reproduction ✅ </b></summary>
```mdx
1. Open an existing alert/report for editing so `AlertReportModal` mounts with a non-null
`alert` prop containing at least `id` (component `AlertReportModal` in
`superset-frontend/src/features/alerts/AlertReportModal.tsx`).
2. `useSingleViewResource<AlertObject>('report', ...)` inside `AlertReportModal` fetches
the full alert from `/api/v1/report/<id>` and populates `resource` with the canonical
server state, including `resource.owners` (see hook usage around the top of
`AlertReportModal`).
3. When `resource` is set, the `useEffect` that depends on `resource` runs and calls
`setCurrentAlert({...resource, owners: (alert?.owners || []).map(...) })` at lines
1946–1973; because this uses `alert?.owners` instead of `resource.owners`, if the `alert`
prop has an empty/missing `owners` array (for example, a lightweight list row object),
`currentAlert.owners` becomes an empty array even though `resource.owners` is populated on
the server.
4. The user clicks "Save" in the modal, which calls `onSave` (same file) and serializes
`owners: (currentAlert?.owners || []).map(owner => (owner as MetaObject).value ||
owner.id)` into the update payload; because `currentAlert.owners` is empty, the request
sent to `/api/v1/report/<id>` removes all owners from the alert, silently dropping
existing owners.
```
</details>
<details>
<summary><b>Prompt for AI Agent 🤖 </b></summary>
```mdx
This is a comment left during a code review.
**Path:** superset-frontend/src/features/alerts/AlertReportModal.tsx
**Line:** 1959:1963
**Comment:**
*Logic Error: When populating the owners field for an existing alert, the code reads from the `alert` prop instead of the freshly fetched `resource`, so if the prop does not include owners (or is stale), the modal will show no owners and saving will silently drop existing owners for that alert; using `resource.owners` ensures the owners list reflects the current server state.
Validate the correctness of the flagged issue. If correct, How can I resolve this? If you propose a fix, implement it and please make it concise.
```
</details>
<a href='https://app.codeant.ai/feedback?pr_url=https%3A%2F%2Fgithub.com%2Fapache%2Fsuperset%2Fpull%2F37906&comment_hash=36e5246c2a17720e42a6d781803753c92fa086390b92e4da48379ab8918351cc&reaction=like'>👍</a> | <a href='https://app.codeant.ai/feedback?pr_url=https%3A%2F%2Fgithub.com%2Fapache%2Fsuperset%2Fpull%2F37906&comment_hash=36e5246c2a17720e42a6d781803753c92fa086390b92e4da48379ab8918351cc&reaction=dislike'>👎</a>
##########
superset/reports/api.py:
##########
@@ -152,6 +158,7 @@ def ensure_alert_reports_enabled(self) -> Optional[Response]:
"owners.first_name",
"owners.id",
"owners.last_name",
+ "owners.email",
Review Comment:
**Suggestion:** The report list API is exposing `owners.email` instead of `owners.username` in `list_columns`, so list views and owner selectors backed by this endpoint will surface email addresses instead of usernames, again diverging from the requirement to show usernames as the secondary text. [logic error]
<details>
<summary><b>Severity Level:</b> Major ⚠️</summary>
```mdx
- ⚠️ Report list endpoint exposes owner email, not username.
- ⚠️ Owner displays in lists diverge from username-based design.
```
</details>
```suggestion
"owners.username",
```
<details>
<summary><b>Steps of Reproduction ✅ </b></summary>
```mdx
1. Ensure there is at least one user whose `username` differs from `email`, and create
several report schedules owned by that user.
2. Call `GET /api/v1/report/` (the list endpoint for `ReportScheduleRestApi`, exposed via
`resource_name = \"report\"` in `superset/reports/api.py`).
3. The response items are populated from `list_columns` at
`superset/reports/api.py:148–166`, which currently include `"owners.email"` but not
`"owners.username"`.
4. Inspect any element in the returned list: owner-related fields expose `email` instead
of `username`, making it impossible for list-based consumers (e.g., report list views or
owner selectors that reuse this payload) to show usernames as the secondary text as
required by the PR description.
```
</details>
<details>
<summary><b>Prompt for AI Agent 🤖 </b></summary>
```mdx
This is a comment left during a code review.
**Path:** superset/reports/api.py
**Line:** 161:161
**Comment:**
*Logic Error: The report list API is exposing `owners.email` instead of `owners.username` in `list_columns`, so list views and owner selectors backed by this endpoint will surface email addresses instead of usernames, again diverging from the requirement to show usernames as the secondary text.
Validate the correctness of the flagged issue. If correct, How can I resolve this? If you propose a fix, implement it and please make it concise.
```
</details>
<a href='https://app.codeant.ai/feedback?pr_url=https%3A%2F%2Fgithub.com%2Fapache%2Fsuperset%2Fpull%2F37906&comment_hash=2523eaeb3ce407b7e90d5a216f8627c917380ad21e932130c4ccd96c72240f79&reaction=like'>👍</a> | <a href='https://app.codeant.ai/feedback?pr_url=https%3A%2F%2Fgithub.com%2Fapache%2Fsuperset%2Fpull%2F37906&comment_hash=2523eaeb3ce407b7e90d5a216f8627c917380ad21e932130c4ccd96c72240f79&reaction=dislike'>👎</a>
##########
superset/reports/api.py:
##########
@@ -113,6 +118,7 @@ def ensure_alert_reports_enabled(self) -> Optional[Response]:
"owners.first_name",
"owners.id",
"owners.last_name",
+ "owners.email",
"recipients.id",
Review Comment:
**Suggestion:** The report detail API is exposing `owners.email` instead of `owners.username` in `show_columns`, which will cause the owner selector and detail views to show email addresses rather than usernames, conflicting with the intended behavior and potentially confusing users in environments where usernames and emails differ. [logic error]
<details>
<summary><b>Severity Level:</b> Major ⚠️</summary>
```mdx
- ⚠️ Report detail endpoint cannot supply usernames for owners.
- ⚠️ Alert/Report modal cannot show usernames as secondary text.
```
</details>
```suggestion
"owners.username",
```
<details>
<summary><b>Steps of Reproduction ✅ </b></summary>
```mdx
1. Start Superset with this PR code deployed and create a user whose `username` differs
from `email` (via the security/user management UI or API).
2. Create a report schedule owned by that user via `POST /api/v1/report/` handled by
`ReportScheduleRestApi.post` in `superset/reports/api.py` (around lines 200–250).
3. Fetch the report details with `GET /api/v1/report/<report_id>` (resource name is
`"report"` in `ReportScheduleRestApi`, so FAB exposes `/api/v1/report/<pk>`).
4. Inspect the JSON `result.owners` payload; it contains `first_name`, `last_name`, and
`email` because `show_columns` at `superset/reports/api.py:118–124` includes
`"owners.email"` but not `"owners.username"`.
5. Any client (including the Alert/Report modal described in the PR) that needs to render
the owner with "secondary text = username" must instead use the exposed `email`, so the UI
will show email addresses where usernames were requested in the feature spec.
```
</details>
<details>
<summary><b>Prompt for AI Agent 🤖 </b></summary>
```mdx
This is a comment left during a code review.
**Path:** superset/reports/api.py
**Line:** 122:122
**Comment:**
*Logic Error: The report detail API is exposing `owners.email` instead of `owners.username` in `show_columns`, which will cause the owner selector and detail views to show email addresses rather than usernames, conflicting with the intended behavior and potentially confusing users in environments where usernames and emails differ.
Validate the correctness of the flagged issue. If correct, How can I resolve this? If you propose a fix, implement it and please make it concise.
```
</details>
<a href='https://app.codeant.ai/feedback?pr_url=https%3A%2F%2Fgithub.com%2Fapache%2Fsuperset%2Fpull%2F37906&comment_hash=1d0602a19e6036c2deda6ee6163ccb0617a3114e4fae3432d0f52ca846c6ca9d&reaction=like'>👍</a> | <a href='https://app.codeant.ai/feedback?pr_url=https%3A%2F%2Fgithub.com%2Fapache%2Fsuperset%2Fpull%2F37906&comment_hash=1d0602a19e6036c2deda6ee6163ccb0617a3114e4fae3432d0f52ca846c6ca9d&reaction=dislike'>👎</a>
--
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: notifications-unsubscribe@superset.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
---------------------------------------------------------------------
To unsubscribe, e-mail: notifications-unsubscribe@superset.apache.org
For additional commands, e-mail: notifications-help@superset.apache.org
Re: [PR] feat(owners): display email in owner selectors [superset]
Posted by "github-actions[bot] (via GitHub)" <gi...@apache.org>.
github-actions[bot] commented on PR #37906:
URL: https://github.com/apache/superset/pull/37906#issuecomment-3891982087
🎪 [Showtime](https://github.com/mistercrunch/superset-showtime) is building environment on [GHA](https://github.com/apache/superset/actions/runs/21955241995) for [36a7947](https://github.com/apache/superset/commit/36a7947)
--
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: notifications-unsubscribe@superset.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
---------------------------------------------------------------------
To unsubscribe, e-mail: notifications-unsubscribe@superset.apache.org
For additional commands, e-mail: notifications-help@superset.apache.org
Re: [PR] feat(owners): display email in owner selectors [superset]
Posted by "github-actions[bot] (via GitHub)" <gi...@apache.org>.
github-actions[bot] commented on PR #37906:
URL: https://github.com/apache/superset/pull/37906#issuecomment-3891371284
🎪 [Showtime](https://github.com/mistercrunch/superset-showtime) deployed environment on [GHA](https://github.com/apache/superset/actions/runs/21950500915) for [2111e2b](https://github.com/apache/superset/commit/2111e2b)
• **Environment:** http://52.39.244.77:8080 (admin/admin)
• **Lifetime:** 48h auto-cleanup
• **Updates:** New commits create fresh environments automatically
--
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: notifications-unsubscribe@superset.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
---------------------------------------------------------------------
To unsubscribe, e-mail: notifications-unsubscribe@superset.apache.org
For additional commands, e-mail: notifications-help@superset.apache.org
Re: [PR] feat(owners): display email in owner selectors [superset]
Posted by "michael-s-molina (via GitHub)" <gi...@apache.org>.
michael-s-molina commented on code in PR #37906:
URL: https://github.com/apache/superset/pull/37906#discussion_r2799160395
##########
superset/reports/api.py:
##########
@@ -152,6 +158,7 @@ def ensure_alert_reports_enabled(self) -> Optional[Response]:
"owners.first_name",
"owners.id",
"owners.last_name",
+ "owners.email",
Review Comment:
False positive
##########
superset/reports/api.py:
##########
@@ -113,6 +118,7 @@ def ensure_alert_reports_enabled(self) -> Optional[Response]:
"owners.first_name",
"owners.id",
"owners.last_name",
+ "owners.email",
"recipients.id",
Review Comment:
False positive
--
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: notifications-unsubscribe@superset.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
---------------------------------------------------------------------
To unsubscribe, e-mail: notifications-unsubscribe@superset.apache.org
For additional commands, e-mail: notifications-help@superset.apache.org
Re: [PR] feat(owners): display email in owner selectors [superset]
Posted by "github-actions[bot] (via GitHub)" <gi...@apache.org>.
github-actions[bot] commented on PR #37906:
URL: https://github.com/apache/superset/pull/37906#issuecomment-3891289362
🎪 [Showtime](https://github.com/mistercrunch/superset-showtime) is building environment on [GHA](https://github.com/apache/superset/actions/runs/21950665208) for [52e4fea](https://github.com/apache/superset/commit/52e4fea)
--
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: notifications-unsubscribe@superset.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
---------------------------------------------------------------------
To unsubscribe, e-mail: notifications-unsubscribe@superset.apache.org
For additional commands, e-mail: notifications-help@superset.apache.org
Re: [PR] feat(owners): display email in owner selectors [superset]
Posted by "bito-code-review[bot] (via GitHub)" <gi...@apache.org>.
bito-code-review[bot] commented on code in PR #37906:
URL: https://github.com/apache/superset/pull/37906#discussion_r2799730435
##########
superset/datasets/schemas.py:
##########
@@ -414,6 +414,7 @@ class DatasetColumnDrillInfoSchema(Schema):
class UserSchema(Schema):
first_name = fields.String()
last_name = fields.String()
+ email = fields.String()
Review Comment:
<div>
<div id="suggestion">
<div id="issue"><b>API Response Field Change</b></div>
<div id="fix">
This changes the UserSchema from serializing 'username' to 'email', which alters the JSON response for the dataset drill_info API. User objects in 'owners', 'created_by', and 'changed_by' will now include 'email' instead of 'username'. While this makes datasets consistent with charts, it may break clients expecting 'username'. The security API still uses 'username', so consider standardizing all UserSchemas.
</div>
</div>
<div><details><summary><b>Review Rule</b></summary><div>Bito created the rule <strong><code>Document and manage breaking changes in API schema definitions</code></strong> for <strong>repo:</strong> <code>apache/superset</code>, <strong>language:</strong> <code>Python</code>. Bito will avoid suggestions that match this rule. You can manage review rules <a href=https://alpha.bito.ai/home/ai-agents/review-rules>here</a>.</div></details></div>
<small><i>Code Review Run #17ab66</i></small>
</div>
---
Should Bito avoid suggestions like this for future reviews? (<a href=https://alpha.bito.ai/home/ai-agents/review-rules>Manage Rules</a>)
- [ ] Yes, avoid them
--
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: notifications-unsubscribe@superset.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
---------------------------------------------------------------------
To unsubscribe, e-mail: notifications-unsubscribe@superset.apache.org
For additional commands, e-mail: notifications-help@superset.apache.org
Re: [PR] feat(owners): display email in owner selectors [superset]
Posted by "michael-s-molina (via GitHub)" <gi...@apache.org>.
michael-s-molina commented on code in PR #37906:
URL: https://github.com/apache/superset/pull/37906#discussion_r2799847010
##########
superset/datasets/schemas.py:
##########
@@ -414,6 +414,7 @@ class DatasetColumnDrillInfoSchema(Schema):
class UserSchema(Schema):
first_name = fields.String()
last_name = fields.String()
+ email = fields.String()
Review Comment:
False positive
--
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: notifications-unsubscribe@superset.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
---------------------------------------------------------------------
To unsubscribe, e-mail: notifications-unsubscribe@superset.apache.org
For additional commands, e-mail: notifications-help@superset.apache.org
Re: [PR] feat(owners): display email in owner selectors [superset]
Posted by "bito-code-review[bot] (via GitHub)" <gi...@apache.org>.
bito-code-review[bot] commented on code in PR #37906:
URL: https://github.com/apache/superset/pull/37906#discussion_r2799860830
##########
superset/datasets/schemas.py:
##########
@@ -414,6 +414,7 @@ class DatasetColumnDrillInfoSchema(Schema):
class UserSchema(Schema):
first_name = fields.String()
last_name = fields.String()
+ email = fields.String()
Review Comment:
<!-- Bito Reply -->
No, the suggestion isn’t fully correct — the diff adds an email field to the UserSchema in superset/datasets/schemas.py, but the original schema only included first_name and last_name, with no username field to replace. This makes datasets consistent with charts and reports by exposing email, but it may not align with the PR's intent to show usernames and could break clients expecting username data.
--
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: notifications-unsubscribe@superset.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
---------------------------------------------------------------------
To unsubscribe, e-mail: notifications-unsubscribe@superset.apache.org
For additional commands, e-mail: notifications-help@superset.apache.org
Re: [PR] feat: Show the username as secondary text beneath the owner name in all owner selectors [superset]
Posted by "bito-code-review[bot] (via GitHub)" <gi...@apache.org>.
bito-code-review[bot] commented on code in PR #37906:
URL: https://github.com/apache/superset/pull/37906#discussion_r2795321014
##########
superset/reports/api.py:
##########
@@ -82,6 +82,11 @@ def ensure_alert_reports_enabled(self) -> Optional[Response]:
resource_name = "report"
allow_browser_login = True
+ extra_fields_rel_fields = {
+ "owners": ["email", "active", "username"],
+ "created_by": ["email", "active", "username"],
+ }
Review Comment:
<div>
<div id="suggestion">
<div id="issue"><b>API Response Structure Change</b></div>
<div id="fix">
The addition of extra_fields_rel_fields and 'owners.username' to show_columns/list_columns modifies the API response structure for owners, including username in the top-level fields. However, the existing test in api_tests.py expects owners to have only ['first_name', 'id', 'last_name'], which will now fail as username is added. This appears to be an unintended breaking change to the API contract.
</div>
</div>
<small><i>Code Review Run #bc8170</i></small>
</div>
---
Should Bito avoid suggestions like this for future reviews? (<a href=https://alpha.bito.ai/home/ai-agents/review-rules>Manage Rules</a>)
- [ ] Yes, avoid them
--
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: notifications-unsubscribe@superset.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
---------------------------------------------------------------------
To unsubscribe, e-mail: notifications-unsubscribe@superset.apache.org
For additional commands, e-mail: notifications-help@superset.apache.org
Re: [PR] feat(owners): display email in owner selectors [superset]
Posted by "michael-s-molina (via GitHub)" <gi...@apache.org>.
michael-s-molina merged PR #37906:
URL: https://github.com/apache/superset/pull/37906
--
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: notifications-unsubscribe@superset.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
---------------------------------------------------------------------
To unsubscribe, e-mail: notifications-unsubscribe@superset.apache.org
For additional commands, e-mail: notifications-help@superset.apache.org