The ultimate Fabric, Power BI, SQL, and AI community-led learning event. Save €200 with code FABCOMM.
Get registeredEnhance your career with this limited time 50% discount on Fabric and Power BI exams. Ends August 31st. Request your voucher.
Hi there,
I am trying to generate Authentication bearer token on the fly, to create Datawarehouse via sample workload using the POST APIs available for it. How to: Create warehouses with case-insensitive (CI) collation - Microsoft Fabric | Microsoft Learn
Just FYI: I was able to do so by hard coding my bearer token.
Workload doc for the CRUD APIs auth setup is Authentication setup - Microsoft Fabric | Microsoft Learn
Please help me with some alternative.
import { PublicClientApplication, AuthenticationResult } from "@azure/msal-browser";
/// MSAL configuration
const msalConfig = {
auth: {
clientId: "************************", // Replace with your client ID
authority: "https://login.microsoftonline.com/***************", // Replace with your tenant ID
redirectUri: "http://localhost:60006/close", // Replace with your redirect URI
},
};
const msalInstance = new PublicClientApplication(msalConfig);
async function initializeMsal() {
await msalInstance.initialize();
}
async function acquireToken(): Promise<string> {
const request = {
scopes: ["https:api://localdevinstance/******************************/Org.WorkloadSample/FabricWorkloadControl"], // Replace with your API scopes
};
try {
const response: AuthenticationResult = await msalInstance.acquireTokenSilent(request);
return response.accessToken;
} catch (error) {
const response: AuthenticationResult = await msalInstance.acquireTokenPopup(request);
return response.accessToken;
}
}
Solved! Go to Solution.
Hi @prathmeshpawar,
Hope your doing good,
The similar issue faced by someone. You can please go through this accepted solution : Solved: Re: Workload Development Toolkit CRUD APIs - Microsoft Fabric Community
Hope this might helps you to solve the problem.
If this answers your question, please Accept it as a solution and give it a 'Kudos' so others can find it easily.
Thank you.
Priyanka
Hi @prathmeshpawar
I wanted to check if you had the opportunity to review the information provided. Please feel free to contact us if you have any further questions. If my response has addressed your query, please accept it as a solution and give a 'Kudos' so other members can easily find it.
Thank you.
May I ask if you have resolved this issue? If so, please mark the helpful reply and accept it as the solution. This will be helpful for other community members who have similar problems to solve it faster.
Thank you.
Hi @prathmeshpawar,
Hope your doing good,
The similar issue faced by someone. You can please go through this accepted solution : Solved: Re: Workload Development Toolkit CRUD APIs - Microsoft Fabric Community
Hope this might helps you to solve the problem.
If this answers your question, please Accept it as a solution and give it a 'Kudos' so others can find it easily.
Thank you.
Priyanka
Hi @prathmeshpawar,
One of the method is to use OAuth 2.0 Client Credentials Flow rather than hardcoding the bearer token. With the use of a client ID, secret, and tenant ID, you can now create tokens dynamically without the need for human interaction.
Plesae refer below document it may help you on this.
OAuth 2.0 client credentials flow on the Microsoft identity platform - Microsoft identity platform |...
Thank you.
Hi @v-priyankata, consider the following scenario in Workload Development Toolkit
I am a end user, I logged in to Fabric and opened my worload.
Now in the above snippet I am creating Data warehouse to store the result of the operations performed in my workload. To provision DWH, I need an authentication bearer token, can it be generated by the account through which I logged in to Fabric, or else is it possible to generate PopUp Signin for authetication token generation?
below I am attaching the file of sample workload editor
please refer to handleCreateWarehouse function
const handleCreateWarehouse = async () => {
console.log(sampleItem?.workspaceId);
const workspaceID = sampleItem?.workspaceId;
const warehouseName = 'LoadFastWarehouse';
const warehouseDescription = 'LoadFast Warehouse for testing';
const payload = {
type: 'Warehouse',
displayName: warehouseName,
description: warehouseDescription,
creationPayload: {
defaultCollation: 'Latin1_General_100_CI_AS_KS_WS_SC_UTF8'
}
};
try {
const bearerToken = await acquireToken();
const response = await fetch(
`https://api.fabric.microsoft.com/v1/workspaces/${workspaceID}/items`,
{
method: 'POST',
headers: {
'Content-Type': 'application/json',
'Authorization': `Bearer ${bearerToken}`
},
body: JSON.stringify(payload)
}
);
if (!response.ok) {
throw new Error('Network response was not ok');
}
const data = await response.json();
console.log('Warehouse created successfully:', data);
} catch (error) {
console.error('Error creating warehouse:', error);
}
};
User | Count |
---|---|
6 | |
2 | |
2 | |
2 | |
2 |
User | Count |
---|---|
20 | |
17 | |
6 | |
5 | |
4 |