tips and tricks
115 TopicsPassing a bearer token to copy data action using GET
Hi All, Not a question, but something I ran into, as I am just picking up MS Fabric, pipelines etc. I needed to use web request, to get an access token that is valid for 30 minutes. Next I needed to use that token as a bearer token to do a follow up API call to get actual data , there didn't seem to be that much info around, when I tried to google it. Eventually I found a you tube video, that told me what i needed to know. (linked below). Things like apikeys and other credentials will of course vary on the API yo are trying to use. This is my flow. Step 1 Do your web request Step 2 link the Web and copy data action Step 3 In the copy data action set it up as follows: As you can see the value of the Authorization header is dynamic, with in my case, the following expression: Bearer @{activity('Get access token').output.access_token} The part ".access_token" depends on the json you get returned, in my case it was a very flat structure with no above array. { "token_type": "BearerToken", "issued_at": "xxx", "salesforce_id": "xxx", "access_token": "xxx", "application_name": "xxx", "scope": "refresh_token full", "expires_in": "xxx" } Above you can see where i got the parameter access_token from. If this array had been nested in for instance another array called "data" then the value would have been data.access_token in stead of just access_token. I hope this is usefull info to share here. The video I got this from you can find here . Cheers HansSolved7.1KViews1like4CommentsMaterialized Lake View Refresh activity Pipeline bug
Hi all, When using the preview feature refresh mlv activity in the pipeline, is do have some major bugs. After saving, it goes back to default, the pipeline does not want to refresh after, and I cannot parametrize it. Is there any workarround, and is this a known bug? Cause this is not workable.243Views0likes8CommentsOffice 365 Email activity: SSO-only connection, team testing, and deployment pipelines
Hello, We use the Office 365 Email activity in Microsoft Fabric pipelines. The connection appears to require interactive SSO and cannot be shared with other users the way many other connections can. Problems we see Collaboration / testing: When a teammate needs to test, they must point the activity at their own connection and sign in with their SSO. That drives artifact or parameter churn we would prefer to avoid. Deployment pipelines: Deployments seem to depend on who performs the deploy and whether they own (or can use) the Office 365 Email connection. If the person running the release is not the connection owner, we hit authorization / resolution issues. Approach we are considering Use a dedicated service principal (automation account) as the identity that owns the Office 365 Email connection in the workspace(s). Grant that service principal the workspace / artifact permissions needed to author and run pipelines. Run deployment pipeline releases (or automation that deploys) as that same service principal so the connection owner and deploy identity stay aligned. Questions for the community and product team Is the above supported and recommended for Office 365 Email in Fabric, or are there known limitations (e.g. connection still bound to a user, Graph/mail permissions, Conditional Access)? For ALM, what is the recommended pattern today: shared automation identity, per-environment connections, parameters only (no connection switching per developer), or something else? Are there roadmap items or ideas we should follow for shareable Office 365 Email connections or clearer deployment-pipeline behavior for this activity? Pointers to documentation or similar solved threads are appreciated. Thank you.Solved2.9KViews0likes11CommentsError - Using the MongoDB Om-Premise Connector
Hello everyone, I'm trying to establish a connection between Fabric and an on-premises MongoDB server. https://learn.microsoft.com/en-us/fabric/data-factory/connector-mongodb-overview In fact, the scenario involves writing data from Fabric to an on-premises MongoDB NoSQL database. The connection has been successfully established on the gateway side (with all necessary firewall rules configured). Then I see the connection in the “Copy Data” section of the “Data Pipeline.” So that means the mapping is working properly. However, the connection test isn't working... Of course, the error message doesn't help at all. For your information, here is the server pattern specified in the gateway connection mongodb01.example.com:27017,mongodb22.example.com:27017,mongodb03.example.com:27017/?authMechanism=DEFAULT&authSource=xxxxxxxxx Thank in advance for your help Have a nice day, Vivien1.8KViews0likes11CommentsDynamically set source connection in copy activity and connection in lookup, script activity
Wanted to understand how we can provide the source connection dynamically rather than manually selecting from the dropdown for copy activity, lookup, script, get metadata activity, etc. as we have to deploy the pipeline to other workspaces which uses different connection name (DEV/QA/UAT/PROD).Solved6KViews0likes5CommentsFabric copy activity fails when JSON source is missing attributes
I have created a Fabric Copy activity that gets data from a REST API connection. I was able to apply the "Collection Reference" as $['results'] node of the JSON response and am writing the inner structs to different fields of a table. The copy activity fails when one of the structs is missing from any API response, and I would like to define a strict mapping that uses NULL or default value for any struct or attribute that is missing from the source instead of failing with an error. Can you please help with a better solution to improve the fault tolerance here?Solved2.1KViews0likes6CommentsFabric Copy Activity from S3 issue: Could not establish trust relationship for the SSL/TLS channel
Hello, I'm trying to copy data from an S3 bucket into OneLake using Copy data activity in a data pipeline in Fabric. While configuring the source for the Copy Data activity, I'm using connection type Amazon S3, Connection is established successfully while clicking Test Connection but when trying to browse files from root, nothing gets listed (empty screen). When I enter the bucket name in the File path and choose "Browse from specified path" option, the following error is raised: "The file operation is failed. A WebException with status TrustFailure was thrown. The underlying connection was closed: Could not establish trust relationship for the SSL/TLS secure channel. The remote certificate is invalid according to the validation procedure. Activity ID: xxxxx " Any help?? Thank you!3.8KViews2likes6CommentsAdd New Column with Dynamic content in Copy Activity
Hi everyone! I'm facing a challenge in a copy activity of my pipeline. Context: I have a pipeline that makes api calls. The apis use something like the following format /api/emails/{email_id)/forms. In order to be able to reach the "forms" part, I have first made a Copy activity for /api/emails and stored the results in a lakehouse table. Then I added a lookup activity that extracts the distinct email_ids and feeds them in a for each loop. Inside ForEach there is another copy activity that utilizes each time the relevant email_id to create the respective relative url (eg. @concat('/api/emails/', item().email_id, '/forms') and proceed with the call. And this works fine. However the response from @concat('/api/emails/', item().email_id, '/forms') does not have email_id as a property. So basically if I just land the resutls in a table I will not know to which email_id each result is linked to. So my goal is in the final table to have the api's original response columns AND the email_id that will be properly generated in each loop. In the Mapping configuration of the copy activity I tried adding a new column to utilize the item().email_id but dynamic content doesn't seem to work. I also tried to make the change via View->Edit JSON code or add the column in the Source configuration "Addiotional Columns", but the first one didn't work and the second one seems to expect a list, not a single value. FYI the api's response is in json format. Has anyone come across to something similar? And if yes how did you proceed? I'll be very gratefull for your input! Thank you in advance, RafaelaSolved1.3KViews0likes3CommentsCreating connectors on an on-premise data gateway via a DevOps pipeline
I've deployed a new on-premises data gateway for a client via a pipeline. Ideally, I'd like to migrate the connectors manually created on the old gateway to the new data gateway. I've already created a service princeple via a pipeline, which I've given API rights to on app.powerbi.com Admin settings. Now, I can connect to api.powerbi.com using PowerShell and the secret with service princeple. I haven't quite managed to get this working yet, so I'm wondering if anyone here has an example I can use to automatically create connectors via a pipeline?Solved1KViews0likes3CommentsRun a pipeline at time intervals within a specific time range
Hi everyone, Pipelines can be scheduled to run at minute or hourly frequencies, but I’d like to know how to configure a pipeline to run every 15 minutes only during specific hours of the day. For example, I need the process to run repeatedly between 8:00 AM and 11:00 AM, but not outside that range. Currently, when I set the recurrence to 15 minutes, it runs perpetually throughout the day, consuming unnecessary capacity for a non-continuous process. Is there a recommended approach or workaround to achieve this behavior? Thanks in advance for your help!Solved2.6KViews0likes4Comments