Join us at FabCon Atlanta from March 16 - 20, 2026, for the ultimate Fabric, Power BI, AI and SQL community-led event. Save $200 with code FABCOMM.
Register now!Get Fabric Certified for FREE during Fabric Data Days. Don't miss your chance! Request now
Hi,
I'm developing a custom Power BI connector and I'm trying to follow the documentation but I'm new on this topic.
I'm using the Navigation Table functionality (https://docs.microsoft.com/en-us/power-query/handlingnavigationtables) to show the user a list of tables each of which is built via Web.Contents() function.
My idea is that the user should be able to enter the URL of the environment and the credentials (Basic with Username and Password) for the authentication and then access the navigation table where each table is built combine the URL and a string to retrive the corresponding source.
Currently we have an authentication issue: even if incorrect credentials are entered, they are accepted, and the navigation table opens. Only when the user selects a table, the message of incorrect credentials is shown.
Has anyone ever detected this problem or can they help me?
Thank you
Hi @artemus and @v-jingzhang ,
Thanks for your answers.
When I test the connector from Visual Studio, I have the expected error:
But when when I try the connector from power bi, I only get the error when I select the table in the navigation table:
Here the code of my simple connector:
section NavTable_Sample;
//
// Definition
//
// Data Source Kind description
NavTable_Sample = [
Authentication = [
UsernamePassword = []
],
Label = "NavTable_Sample Part 3 - Navigator"
];
// Data Source UI publishing description
NavTable_Sample.Publish = [
Beta = true,
Category = "Other",
ButtonText = { "NavTable_Sample Navigator", "NavTable_Sample Navigator" }
];
//
// Implementation
//
[DataSource.Kind="NavTable_Sample"]
shared NavTable_Sample.Feed = Value.ReplaceType(NavTable_SampleImpl, type function (url as Uri.Type) as any);
[DataSource.Kind="NavTable_Sample", Publish="NavTable_Sample.Publish"]
shared NavTable_Sample.Contents = Value.ReplaceType(NavTable_SampleNavTable, type function (url as Uri.Type) as any);
// DefaultRequestHeaders = [
// #"Accept" = "application/json;odata.metadata=minimal", // column name and values only
// #"OData-MaxVersion" = "4.0" // we only support v4
// ];
//
NavTable_SampleImpl = (url as text) =>
let
source = Web.Contents(url),//, [ Headers = DefaultRequestHeaders ]),
json = Json.Document(source)
in
json;
NavTable_SampleNavTable = (url as text) as table =>
let
source = #table({"Name", "Data", "ItemKind", "ItemName", "IsLeaf"}, {
{ "Entity", GetDataSource(url,"Datasource_000001()"), "Table", "Table", true }
}),
navTable = Table.ToNavigationTable(source, {"Name"}, "Name", "Data", "ItemKind", "ItemName", "IsLeaf")
in
navTable;
GetDataSource = (url as text, Datasource as text) as table =>
let
source = NavTable_Sample.Feed(url &"/api/aih/data/v1/TGK_01/PBI/" & Datasource),
#"Converted to Table" = Table.FromRecords({source}),
#"Expanded value" = Table.ExpandListColumn(#"Converted to Table", "value"),
Datasource_Table = Table.FromRecords(#"Expanded value"[value] )
in
Datasource_Table;
Table.ToNavigationTable = (
table as table,
keyColumns as list,
nameColumn as text,
dataColumn as text,
itemKindColumn as text,
itemNameColumn as text,
isLeafColumn as text
) as table =>
let
tableType = Value.Type(table),
newTableType = Type.AddTableKey(tableType, keyColumns, true) meta
[
NavigationTable.NameColumn = nameColumn,
NavigationTable.DataColumn = dataColumn,
NavigationTable.ItemKindColumn = itemKindColumn,
Preview.DelayColumn = itemNameColumn,
NavigationTable.IsLeafColumn = isLeafColumn
],
navigationTable = Value.ReplaceType(table, newTableType)
in
navigationTable;
I follow the TripPin sample to create dynamic navigation tables, is it correct my code?
Thank you,
Best Regards
Francesca
Make sure your TestConnection handler throws an error on auth failure.
Hi @artemus
I saw you have solved some problems about custom connectors. If you have time, can you help have a look at this thread? Appreciate any idea and insight about it. Thank you in advance.
Best Regards,
Community Support Team _ Jing
I'm not good at developing a custom connector so not able to provide detailed solutions. According to the description, it seems you need to create dynamic navigation tables rather than show hard-coded entities in the nav table.
Best Regards,
Community Support Team _ Jing
Check out the November 2025 Power BI update to learn about new features.
Advance your Data & AI career with 50 days of live learning, contests, hands-on challenges, study groups & certifications and more!
| User | Count |
|---|---|
| 9 | |
| 7 | |
| 7 | |
| 3 | |
| 3 |
| User | Count |
|---|---|
| 21 | |
| 14 | |
| 11 | |
| 10 | |
| 9 |