Guided tour fetches real permissions for its mock table, so the profiler step renders empty
The guided tour renders a mock table — tourMockDatasetData, an entity that does not exist on
the server. TableDetailsPageV1 already knows this for the entity fetch:
Boolean(tableFqn && canViewTableInQuery && !isTourOpen && !isTourPage), // line 242but both useEntityPermissions calls run unconditionally, so during the tour the page asks the API
for permissions on a fully-qualified name that has no entity behind it, and then drives the tour's
tabs from whatever that returns.
mockTablePermission — the grant set written for exactly this purpose in
src/constants/mockTourData.constants.ts — is dead code: nothing imports it.
What this breaks
The profiler step of the tour. ViewDataProfile is not among the permissions the page ends up with,
so #profilerDetails never renders and step 13 shows an empty panel. The tour's own Playwright spec
advances through step 13 without asserting anything is there, so nothing catches it.
It also means every tour run issues at least one pointless permission request, and pollutes the permission cache with an entry for a non-existent entity.
How we know it is fixed
- Both
useEntityPermissionscalls are disabled for the tour via the hook's existing{ enabled }option, so no request is issued for the mock FQN. - The tour's grants come from
mockTablePermission, which gains theViewDataProfile: trueit needs and is no longer dead code. TableDetailsPageV1.test.tsxasserts the hook is called with{ enabled: true }outside the tour.Tour.spec.tsasserts#profilerDetailsis visible at step 13, so the empty panel cannot come back unnoticed.
Source: open-metadata/OpenMetadata