chapters transcript notes
click any line to jump to that moment in the video
0:00 Hello again and welcome back to another episode of Agentic Thinking. I want to apologize a little bit here because in our last video on episode 34, we did a really good job of trying to build an intake form and using the new anonymous feature and we struggled. 0:16 We couldn't get through it. We had some issues. Matthias and I really were trying to debug the issue live. We were we were trying it live. It was a real demo. 0:26 It was happening and I believe we have figured out the issue. in working with Microsoft and doing some digging around inside the code, I have the appropriate solution. 0:37 this is the the resolution. This is going to be a short video. I'm going to pick up where we left off from our last video and then just go a little bit further around what did we do to fix this problem? 0:52 with that being said, let's go over to my desktop. You can see here we're back in our desktop and I want to just give you a quick touch point to where we began earlier. 1:05 We made a number of intake forms as a fabric app. One of them such intake form was called intake form. this is the one that we were building originally and this is the one that was failing. 1:17 we're going to start with this project and I'm going to show you the current state of the app. I'm going to show you the bug and then I'm going to show you how to resolve this issue. 1:30 I'll click on intake form. you'll notice when I click on the app itself, it immediately loads the app directly inside fabric. You don't have to do this. 1:40 This is a direct URL anyone can use and it can be accessible anywhere on the internet. if I go over to manage the application, you'll see here we get a direct URL and this is the publicly facing URL and this is why we're using the anonymous access. 1:57 The idea being this is a form. I would want anyone to fill out the form and submit some data to it. I want the form to fill out the information and put it in my SQL database inside Fabric. 2:10 I want a permissionless, I want an anonymous way for users to interact with my application and then send data through. to to open the application, I'm going to click the open button here on the -hand side, 2:23 which will then open up the app directly. this is the app that we built last time, but let me show you the errors the errors. Let me zoom in here a bit you can see what we're doing. 2:37 I'm going to put in some general information. Hey, I'm Mike. I am , , testing this. And then my email is going to be test at gmail.com. 2:47 that's that's the information I'm going to submit into the form. And when I hit submit, it chews for a bit and then it says, "Whoops, you've got this GraphQL error." And you think to yourself, "What is going on? 3:01 Where's the GraphQL? Why don't I see it?" , you would be correct. if I go back over to Fabric , and I go back over to the workspace, 3:11 inside the workspace, near where it says intake form, notice that that there is no GraphQL being shown in here. GraphQL is a specific item that exists inside Microsoft Fabric. 3:21 You can create a GraphQL on top of a SQL database. Or, if you click new item up here, you can also create a GraphQL directly inside the service, 3:31 which is great. Love it. The downside is the GraphQL that we're seeing and the error message we're seeing there is hidden. The GraphQL is being used behind the scenes and we don't see it when this Fabric app deploys. 3:45 it's hidden to us. that's fine, but we only need to understand how do we fix our problem in our code the GraphQL works correctly. 3:55 here's where the issue came from. Let me move over here to VS Code. And if you navigate the project, in your projects, you'll have, agents, a distribution folder, you'll have the Rayfin section of code, 4:09 ? And you'll have the source section of code. Source is where the application lives. Rayfin are specific components directly for Rayfin. If you go into the Rayfin folder, open that up, and then inside the folder named data. 4:23 the data folder was key here. And if you click into the data folder, and then for our app, the way we built it, the way our agent built it, it built this thing called schema. 4:35 ? the schema file is what we're looking at. And over here, let me minimize my terminal, this is the schema that we have. ? 4:45 When we access this data table, which is the intake submission form, which is a table in our SQL database, it has these different column names, ID, name, title, and email. 4:55 The thing that it's missing, or it has, it has this create, and this is the anonymous role that we were talking about earlier. this is the new feature, anonymous. 5:06 The role is anonymous, and you give it some permissions. However, if you only use the create object, we have listed here, this is just a create item, create alone does not work. 5:17 ? what we need to do is we need to add an array of objects into this role, and you need to automatically include the read and the create item. 5:29 it's apparently there's some bug here that's going on. if I create, read, and then add the create item, and here auto correct is trying to to help me out here. 5:40 I'm going to hit tab and finish that off. the new pattern is read goes first, then we have create. both of these roles or permissions are required on this role of the anonymous. 5:52 if I save this file, control S, save the file, it is different, and I need to do a Ray Fin up exercise. 6:02 I've I've made a change to the application, and I need to make some change. I'll hit the command line here, and then I'll do NPX NPX Ray Fin up. 6:13 And you'll see down here that's what we're doing. This is the command that we're going to run in the terminal. This is what takes the app, bundles it here locally, and pushes up the artifacts into the service. 6:26 I'll hit enter here. And the app will then build. it's building the application. It's checking all the data sets. It's then compiling the app and building it. 6:36 And all we're looking for check boxes here, all green box check boxes. it's building the three items, and again, I've told you this before in the the episodes. 6:46 Whoops, it moved away too quickly here. When it builds and deploys items here, it's going to build these distribution assets. these are the three assets that my project is using to push to the service in order for the service to run all the the code for our app. 7:03 ? All check boxes, everything is success, we're good and deployed. we can go back over to Microsoft Fabric. I can click on the intake form again, and I'm going to refresh the page it gets a clean copy of everything here. 7:20 And you'll notice this form will still load. I'm also going to do this on the website. I'm not going to do it directly from Fabric you can prove that I'm not signed in. 7:32 let me go over here to manage the app. I'll click open, and I'll just for kicks and giggles, I'm going to make sure that I click the sign out button you can see that I'm in fact not signed into this application. 7:47 This is true anonymous. Oh, one thing before I show you this, let's go back over to Fabric real quick, and let's look at the database. you can confirm what we've put in here far. 8:00 if I go into our intake form SQL database that we have down here, when I click on the intake form, you'll see that we have a SQL database with a DBO, 8:11 we have some tables, and inside our tables there's our intake submission form directly as a table inside Microsoft Fabric. if I click on intake submissions, and then I can click select the top 1,000 rows, 8:23 it should execute and run and we can see here I've got two test, test one and two, already loaded into this application. Great. Let's do a test three, ? 8:34 we're going to go back over to the application, the name will be Mike, the title will be test 03, and then we're going to do a same just dummy email. 8:45 We'll just say Mike @email.com, ? assuming we've got everything deployed correctly, this is an anonymous user using the application submitting data back into submitting it back to my SQL database. 8:56 There we go. with that read and create permission on the data set, we get our thank you message and then I can click here again to submit another response and it goes back to the main part of the form. 9:10 this is the embedded form that we would . We have it styled and working correctly and we can confirm the data is in fact there by going back to our SQL database, 9:22 running it again, and there we go. We can see that test 03 over here. Oops, I should probably not cut that off. We can see here our new record has shown up. 9:34 Test 03 is there. We know that it's appropriately working and there we go. We we have finished the build. we have a fully anonymous intake form where you can decide what feedback you want via a form, 9:48 that information is directly sent from the form to the Microsoft SQL database, and it's in Fabric. And I can do anything else I want within Fabric. 9:58 And this is the really important story here around why we to use Fabric much, because I can use notebooks, I can manipulate that SQL database with push stored procedures, 10:09 I have access to semantic models and building reports, and everything that I need to data engineer on top of that data coming into SQL is exposed to me and easily usable inside Microsoft Fabric. 10:21 anyways, I just wanted to show you and close off this story here. We have fixed our intake form. We know how to do it, and it was related to the permissions that were wrong on the data set. 10:34 With that being said, thank you much for this episode. This was a short cleanup episode from our last week on Friday. If you'd to hear more about what we're doing in Microsoft Fabric, 10:46 fixing things, using agents, let us know in the comments what you would to hear, what you'd to see from us. We're happy to build new training and education about what we're learning and knowledge in that into the community as . 11:01 Thank you much for paying attention and watching today. We hope you this short and quick episode about fixing the GraphQL error that you appear when you don't have the permissions on your data set. 11:13 Thank you all much, and we'll see you next time. Agent is thinking.