Skip to main content
cancel
Showing results for 
Search instead for 
Did you mean: 

Earn the coveted Fabric Analytics Engineer certification. 100% off your exam for a limited time only!

Reply
Anonymous
Not applicable

Custom Data Connector Prompt Credentials

Hey guys,
I'm building a custom data connector to gets data from an Rest API that doesn't support OAuth, and i was wondering if it is possible for the user to be prompted for some info, like the Base_Url and an Auth_Key on the first use, and then store that info in a text file. Then the connector would read from that file everytime. The prompt could always appear, but if it was pre-filled, that would be awesome.

I made the part that reads from the text file, but i can't figure out a way to make the "user input first" approach, work.
Is there any way to make that using the credentials part of the connector, maybe?
My connector logic is:

GetTable = (ID as text, Params as text) as table =>
    let
        authKey = LoadFromResource("Auth_Key"), // file Auth_Key.txt
        url =  LoadFromResource("BaseUrl") & "?id=" & ID & "&params=" & Params, // file BaseUrl.txt
        options = [Headers=[auth_key= authKey, #"Content-Type"="application/Json"]], 
        source = Json.Document(Web.Contents(url, options)),
        toRecords = Table.FromRecords(source),
        expanded = ExpandAllRecords(toRecords)
     in
        expanded;

[DataSource.Kind="Test1", Publish="Test1.Publish"]
shared Test1.Contents = (ID as text, Params as text) => 
     let    
          source = GetTable(ID, Params)
     in
          source;

 Thank you.

3 REPLIES 3
AfsarP1
Helper IV
Helper IV

You can create an argumented function to get the url as a parameter. Example:

 

Thisisthefunction = (url as text) =>

 

let 

source = Web.Contents(url)

in 

source

Anonymous
Not applicable

Update: i figured out how to prompt only once for the auth_key:

authKey = Extension.CurrentCredential()[Key] 

Instead of that LoadFromResource. This way it prompts the user for the key on the first time, and then it stores in PBI, even if you clean the cache.

You have to change this aswell:

Teste1 = [
    Authentication = [
        Key = 
[
            Label = " "
] 
    ],
    Label = Extension.LoadString("DataSourceLabel")
];

Now i'll keep trying for the Base URL.

Anonymous
Not applicable

Hi did you find any method to pass url as parameter

Helpful resources

Announcements
April AMA free

Microsoft Fabric AMA Livestream

Join us Tuesday, April 09, 9:00 – 10:00 AM PST for a live, expert-led Q&A session on all things Microsoft Fabric!

March Fabric Community Update

Fabric Community Update - March 2024

Find out what's new and trending in the Fabric Community.