I will stop you there, yes this does sound like a silly idea, but trust me, there is some method to my madness, and as always, the journey is half the fun.
So 2 things convergent at the same time that almost felt like fate:
- I was creating a complex Security Role setup (because you know only system admins can do that and I don't want my developers to have the keys to the kingdom)
- Second Open AI gave me 1 month GPT Plus free
So I thought can I make my life easier and burn some free tokens.
And like all good ideas they grow into something crazy.
1. Where it started
I'm sure most admins will agree the Security Role UI is not the best, it doesn't seem to fit the screen well and feels like it was designed to edit single tables, not large complex roles. At the moment I get Excel spreadsheets with the roles required permissions and I have to copy them over, so I thought how cool would it be for the app I'm building was able to:
- Create roles then export them (and existing) as a Excel file
- I handover to the dev team, they fill in,
- Hand back to me where I do a quick security check then upload
And that's where it all began
2. The Design
Auth is never fun, especially for a Low-Code developer like me who relies on the platform to do all the heavy lifting. Fortunately we have a great foundation to build off, the new NPM Power Apps CLI, this is obviously a terminal app but:
- It can do full Dataverse Auth (and now connections using https://api.powerapps.com API)
- No need for registering a spn and getting security approval (winner)
So my idea was to use the cli package and spin up a local node instance, this will stop any cors issues and allow me to have a nice web UI. It also means in future it could:
- Be installed through terminal nice and easy
- Packaged in SEA of Electron
- Hosted as a full web app
3. The Build
I have basic knowledge of JavaScript so can read it and code in it, which meant I was in a good place to leverage AI and my free Codex tokens to build the solution.
The App is 100% AI coded, I have reviewed a handful of lines of code, but I'm fully in the world that unless this is something professional (i.e. I'm paid to use it or paid to sell it), then I'm happy to take the risk and tech debt.
I've spoke about how I prompt before and my next blog I'm going to go into more detail about it, so I'm not going to talk about it to much, except to say:
- This is definitely not a one shot prompt
- I did research before around technical implementation so that I could guide Codex
- I worked on a feature-fix-refine cycle, with prompts and work focused around completing a specific feature
4. How It Came Out
Amazingly the end result was exactly what I wanted, it is lightweight, fast, and super easy to navigate/use. It significantly decreased time taken to roles, and decreased potential errors.
I had to get auth and environment working first, then a PoC CSV version, before finally ending with a formatted Excel workbook.
5. Scope Creep
Everything I had wanted to complete was done surprisingly quick, in total an hour or so, and I hadn't even hit my 5 hour allowance let alone my weekly, so I decided what more I can do.
And this is where I had a realisation, the Admin Center is split into 2, with tenant settings and environments, and then below environment each environment setting. This makes sense and in the world of one solution it is the best choice, but we are no longer in the world of one solution and there are times when this is not the best structure.
The other approach is to remove the environment structure and go by functional area, so like in my above admin center, instead of seeing all security roles in each environment, I have a security role section where I see all environments. And I thought what else in my workflow would also benefit from this, so far I have:
Solutions
I work across lots of environments, I even work across different tenants, so trying to remember where stuff is can be a challenge, I endup opening multiple tabs and searching for them. So I decided to make a solution tab.
This allows me to quickly select an environment and then search for the solution. As that was super easy and just one API call I added
- SolutionComponent call and Entities table to get all the components in the solution with display name
- Link to the solution in make.powerautomate.com
- Basic updates:
- Change connections in Connection References
- Change Environment Variables
- Turn flows on/off
- Share flow both co-owner and run-only user (Add in SystemUser and Team table)
- Update manual flows connections to either flow owner or run-only user
- Share Canvas, Code Apps, and Agents
All of the above was stuff I had to do and took more time then I liked in the standard UI.
But as I have gone this far and then thought what about exporting the solution for code reviews, so I added the unbound ExportSolution API. And as I was fully on the slippery slope I then asked myself, what about deploying to another environment.
This required another new tab and the ability to not only use the unbound ImportSolution API but also all of the connections and Environment Variables:
- List all connections References and Environment Variables in the Solution
- Get Connections from target environment and create them if necessary
- Get current environment variable values from target environment
- Create the Settings JSON and submit that
And it all worked, amazingly well after only a few prompts (I also did a chunk of research and had some good knowledge on the export/import API's which definitely helped).
I was now in full addiction mode, targeting every friction point in my admin role, every task that takes just a little too long, so next was...
Users and Teams
Assigning user roles, and more importantly adding and assigning teams can be a time consuming task, but now I can complete them all in one go.
Connections
Unfortunately connections in Power Automate are brittle and often break, requiring a process to identify and fix. Add in Custom Connector secret updates can cause users connections to store stale tokens means that we need a way to quickly delete them. So this tab lists all connections in an environment (obviously you will need to be System Admin else you will only see your own).
Tables
Ok I'm a little out of control now, but there are times when I want to check to see if tables are deployed across environments, along with getting good documentation. So I added a Table tab, that lists all tables and:
- Shows all or just custom columns
- Creates a table of columns that can be exported to Excel
- Creates a Database Design Diagram
The updates also rolled back to the Solution tab, so I can see all Table/columns and a Diagram of all the tables in the solution (wanted this for so long, Chrome Ext coming soon).
AI Flows
Keeping track of credit usage has improved massively but still not perfect, so I grabbed all the events from the AI events table. And with a little exploring of network traces to see how the Automation Center did it I was able to see all the flows using credits
Copilot Studio Events
I wanted this to be like AI Flows so I could track usage of credits, but that is done by none Dataverse API's. But I could see the bot transcript table, which meant I could see which agents had most sessions, and could open up a transcript if needed to check on outcomes.
Flow Runs
Already well represented in the real Admin Center but I thought why not, now I can see all flow runs in an environment by flow, and identity failed runs easily.
6. Wrap Up
There was a few realisations I had from this adventure, and just how powerful AI is wasn't one of them.
I said along time ago I didn't agree with 'AI is the newUI', people simply prefer user interfaces more then text inputs. But I now think its 'AI provides a personal UI'. The future is that anyone can create a bespoke interface for their personal ways of working, or even events, no more compromising.
- You prefer menu on the right, done,
- Options by function not hierarchy, done
- Edit in Excel and upload instead of in app, done
- On mobile instead of laptop, done
The options are literally endless, and the value in almost infinite marginal improvements should not be underestimated.
And for me this means software developers need to pivot to open solutions. Shockingly Salesforce have figured this out with Headless 360, with the data structure and infra the product, and you bring your own UI (BYUI) now the future.
I really hope the rest of the Power Platform Admin Center API's are exposed and structured as easy as Dataverse API's.
The last realisation is a little less exiting, and that's around these 'all you can eat' subscriptions like from Open AI and Anthropic and how they changed my behaviour. With GitHub Copilots new (and old model) I was very targeted and thoughtful with my prompting, adding a new level to the project. But with Codex my behaviour changed, the 5 hour/weekly limit turned into a goal to use, focusing on quantity not quality. This led to me making sure I was in Codex every 5 hours and other addictive like behaviours, I can see how easy it is to become AI Vampire's.
So for now I wont be renewing my GPT Plus subscription, no matter how good it was.
Power Devbox Admin is available in NPM powerdevbox-admin, so if you have Node installed you can install it locally with:
npm i powerdevbox-admin
Or just run it locally with:
npx powerdevbox-admin
Or if you want to fork it (or help improve it) you can find the repo here https://github.com/wyattdave/pdac










Top comments (0)