{"id":38562553,"url":"https://github.com/merill/graphxray","last_synced_at":"2026-04-08T16:00:25.380Z","repository":{"id":117391419,"uuid":"557664258","full_name":"merill/graphxray","owner":"merill","description":"👋 Ever performed an action in the Microsoft admin portals like Entra or Intune and wished you knew how to script it? Graph X-Ray gives you 'X-ray vision'!","archived":false,"fork":false,"pushed_at":"2026-04-05T03:19:17.000Z","size":4535,"stargazers_count":39,"open_issues_count":3,"forks_count":10,"subscribers_count":2,"default_branch":"main","last_synced_at":"2026-04-05T05:02:24.987Z","etag":null,"topics":["graph","microsoft-365","powershell"],"latest_commit_sha":null,"homepage":"https://graphxray.merill.net","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":"dhruvchand/SaveAsScriptHackathon","license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/merill.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2022-10-26T04:19:56.000Z","updated_at":"2026-04-05T04:13:14.000Z","dependencies_parsed_at":null,"dependency_job_id":"2b535435-a2ab-42c7-9f6e-f0b367a0c3cc","html_url":"https://github.com/merill/graphxray","commit_stats":null,"previous_names":[],"tags_count":19,"template":false,"template_full_name":null,"purl":"pkg:github/merill/graphxray","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/merill%2Fgraphxray","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/merill%2Fgraphxray/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/merill%2Fgraphxray/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/merill%2Fgraphxray/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/merill","download_url":"https://codeload.github.com/merill/graphxray/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/merill%2Fgraphxray/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31562696,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-08T14:31:17.711Z","status":"ssl_error","status_checked_at":"2026-04-08T14:31:17.202Z","response_time":54,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["graph","microsoft-365","powershell"],"created_at":"2026-01-17T07:49:19.005Z","updated_at":"2026-04-08T16:00:25.360Z","avatar_url":"https://github.com/merill.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Graph X-Ray: See the Code Behind the Clicks\n\n| Microsoft Edge | Google Chrome | Firefox |\n|-|-|-|\n| [![Microsoft Edge Add-ons](https://img.shields.io/badge/Microsoft_Edge-Install_Graph_X--Ray-0078d4?style=for-the-badge\u0026logo=microsoft-edge\u0026logoColor=white)](https://microsoftedge.microsoft.com/addons/detail/graph-xray/oplgganppgjhpihgciiifejplnnpodak) | [![Chrome Web Store](https://img.shields.io/badge/Google_Chrome-Install_Graph_X--Ray-4285f4?style=for-the-badge\u0026logo=google-chrome\u0026logoColor=white)](https://chrome.google.com/webstore/detail/graph-x-ray/gdhbldfajbedclijgcmmmobdbnjhnpdh) | [![Firefox Add-ons](https://img.shields.io/badge/Firefox-Install_Graph_X--Ray-FF7139?style=for-the-badge\u0026logo=firefox\u0026logoColor=white)](https://addons.mozilla.org/en-US/firefox/addon/graph-xray/) |\n|![Edge Web Store Users](https://img.shields.io/badge/Microsoft_Edge_--_Users-10k-gray?style=social\u0026color=purple) ![Edge Web Store Stars](https://img.shields.io/chrome-web-store/stars/gdhbldfajbedclijgcmmmobdbnjhnpdh?style=social\u0026label=Microsoft%20Edge%20-%20Rating\u0026color=purple) | ![Chrome Web Store Users](https://img.shields.io/chrome-web-store/users/gdhbldfajbedclijgcmmmobdbnjhnpdh?style=social\u0026label=Chrome%20-%20Users\u0026color=purple) ![Chrome Web Store Stars](https://img.shields.io/chrome-web-store/stars/gdhbldfajbedclijgcmmmobdbnjhnpdh?style=social\u0026label=Chrome%20-%20Rating\u0026color=purple) | ![Firefox Add-ons Users](https://img.shields.io/amo/users/graph-xray?style=social\u0026label=Firefox%20-%20Users\u0026color=purple) ![Firefox Add-ons Stars](https://img.shields.io/amo/stars/graph-xray?style=social\u0026label=Firefox%20-%20Rating\u0026color=purple) |\n\nUnlock the power of automation and learning in the Microsoft 365 ecosystem. Graph X-Ray is a developer tool that demystifies the Microsoft admin portals by revealing the exact Microsoft Graph API calls being made in the background as you work.\n\nStop spending hours digging through documentation to figure out how to automate a task. Simply perform the action in the portal, and Graph X-Ray will provide you with the corresponding, ready-to-use script. It's the ultimate \"learn by doing\" tool for Microsoft Graph.\n\n![Demo of opening Graph X-Ray panel](./public/img/tutorial/graphxraydemo.gif)\n\n## Key Features\n\n- **API Call Inspection**: Capture and inspect all Microsoft Graph API requests (GET, POST, PATCH, DELETE) and their full responses directly within your browser's developer tools.\n\n- **Instant Script Generation**: Automatically convert recorded API calls into functional code snippets.\n\n- **Multi-Language Support**: Generate scripts in the most popular languages for M365 automation, including:\n\n  - Microsoft Graph PowerShell\n  - Python\n  - C#\n  - JavaScript\n  - Go\n  - Java\n  - Objective-C\n\n- **Accelerate Automation**: Go from a manual, repetitive task in the UI to a fully automated script in seconds.\n\n## Who is this for?\n\n- **Microsoft 365 Administrators** wanting to automate user management, policy configuration, and reporting.\n\n- **DevOps Engineers** building CI/CD pipelines for Microsoft 365 and Azure environments.\n\n- **Developers** creating applications that integrate with Microsoft Graph.\n\n- **IT Consultants \u0026 Support Professionals** who need to quickly script solutions for clients.\n\nSupercharge your Microsoft 365 workflow. Install Graph X-Ray today and turn your clicks into code!\n\n## Install\n\nInstall the Graph X-Ray extension for your favorite browser.\n\n| Microsoft Edge | Google Chrome | Firefox |\n|-|-|-|\n| [![Microsoft Edge Add-ons](https://img.shields.io/badge/Microsoft_Edge-Install_Graph_X--Ray-0078d4?style=for-the-badge\u0026logo=microsoft-edge\u0026logoColor=white)](https://microsoftedge.microsoft.com/addons/detail/graph-xray/oplgganppgjhpihgciiifejplnnpodak) | [![Chrome Web Store](https://img.shields.io/badge/Google_Chrome-Install_Graph_X--Ray-4285f4?style=for-the-badge\u0026logo=google-chrome\u0026logoColor=white)](https://chrome.google.com/webstore/detail/graph-x-ray/gdhbldfajbedclijgcmmmobdbnjhnpdh) | [![Firefox Add-ons](https://img.shields.io/badge/Firefox-Install_Graph_X--Ray-FF7139?style=for-the-badge\u0026logo=firefox\u0026logoColor=white)](https://addons.mozilla.org/en-US/firefox/addon/graph-xray/) |\n|![Edge Web Store Users](https://img.shields.io/badge/Microsoft_Edge_--_Users-10k-gray?style=social\u0026color=purple) ![Edge Web Store Stars](https://img.shields.io/chrome-web-store/stars/gdhbldfajbedclijgcmmmobdbnjhnpdh?style=social\u0026label=Microsoft%20Edge%20-%20Rating\u0026color=purple) | ![Chrome Web Store Users](https://img.shields.io/chrome-web-store/users/gdhbldfajbedclijgcmmmobdbnjhnpdh?style=social\u0026label=Chrome%20-%20Users\u0026color=purple) ![Chrome Web Store Stars](https://img.shields.io/chrome-web-store/stars/gdhbldfajbedclijgcmmmobdbnjhnpdh?style=social\u0026label=Chrome%20-%20Rating\u0026color=purple) | ![Firefox Add-ons Users](https://img.shields.io/amo/users/graph-xray?style=social\u0026label=Firefox%20-%20Users\u0026color=purple) ![Firefox Add-ons Stars](https://img.shields.io/amo/stars/graph-xray?style=social\u0026label=Firefox%20-%20Rating\u0026color=purple) |\n\n### Manual Install\n\nTo manually install the Graph X-Ray extension:\n\n#### Chrome/Edge\n- Download the latest `.zip` file from the [Releases page](https://github.com/merill/graphxray/releases).\n- Extract the contents of the `.zip` file.\n- Open your browser and navigate to:\n  - Microsoft Edge: `edge://extensions`\n  - Google Chrome: `chrome://extensions`\n- Enable \"Developer mode\" by toggling the switch (usually in the bottom left or top right corner).\n- Click on \"Load unpacked\" and select the extracted folder.\n\n#### Firefox\nInstall directly from Firefox Add-ons:\n- Open [Graph X-Ray on Firefox Add-ons](https://addons.mozilla.org/en-US/firefox/addon/graph-xray/) and click **Add to Firefox**.\n\nFor manual loading, use the Firefox-specific zip from the [Releases page](https://github.com/merill/graphxray/releases):\n- Download `graphxray-firefox-v\u003cversion\u003e.zip`.\n- Extract the contents of the `.zip` file.\n- Open Firefox and navigate to `about:debugging#/runtime/this-firefox`.\n- Click **Load Temporary Add-on** and select the `manifest.json` file from the extracted files (zip root).\n\nIf you prefer to build from source:\n- Clone the repository: `git clone https://github.com/merill/graphxray.git`\n- Navigate to the project directory: `cd graphxray`\n- Install dependencies: `npm install`\n- Build for Firefox: `npm run build:firefox`\n- Open Firefox and navigate to `about:debugging#/runtime/this-firefox`\n- Click **Load Temporary Add-on** and select the `manifest.json` file from the `build` folder\n\n## Supported Microsoft Graph Endpoints\n\nThe extension detects and generates code snippets for Microsoft Graph calls across:\n\n- **graph.microsoft.com** (Public cloud)\n- **graph.microsoft.us** (US Government cloud - GCC High)\n- **dod-graph.microsoft.us** (US Department of Defense)\n- **microsoftgraph.chinacloudapi.cn** (China cloud)\n\n## Supported Microsoft Admin Portal Environments\n\nThe extension works with any web page that makes Graph API calls. We've primarily tested with\n\n- Microsoft Entra\n- Microsoft Intune\n\nIf there are admin portals where you are not seeing Graph X-Ray work as expected, please open an [issue](https://github.com/merill/graphxray/issues), even better, submit a pull request by following the steps in [Adding non-Graph API calls to Ultra X-Ray](#adding-non-graph-api-calls-to-ultra-x-ray).\n\n## Using Graph X-Ray\n\n### Viewing the Graph call stack trace\n\nTo view Graph calls in real-time:\n\n- Browse to the **Microsoft admin portal (Entra, Intune...)**\n- Open **Developer Tools**\n- Open the **Graph X-Ray panel** in Developer Tools\n- Make changes in the portal to record and view the corresponding Graph API calls and PowerShell commands\n\n![Demo of opening Graph X-Ray panel](./public/img/tutorial/graphxraydemo.gif)\n\n### Step by step guide\n\n#### Open Developer Tools\n\n##### Using the keyboard\n\n- Press **F12** on Windows\n- Press **Cmd+Opt+I** on macOS\n\n##### Using the menu\n\n- On Microsoft Edge open the menu from the top right then select **Extensions**\n- On Google Chrome open the menu from the top right then select **More Tools** and click **Extensions**\n\n![Screenshot of selecting Developer Tools in Edge](./public/img/tutorial/Tutorial-1.png)\n\n#### Open the Graph X-Ray panel\n\nExpand the tabs in Developer Tools and select the Graph X-Ray panel.\n\nIf you don't see the Graph X-Ray panel you may need to restart your browser.\n\n![Screenshot of opening Graph X-Ray pane](./public/img/tutorial/Tutorial-2.png)\n\n#### View Graph call stack trace\n\nMake changes in the Azure Portal to view the corresponding Graph API calls and PowerShell commands for the action (e.g. edit a user's profile information and click Save).\n\nScroll down in the Graph X-Ray panel to view the new stack trace.\n\n![Screenshot of viewing graph changes](./public/img/tutorial/Tutorial-3.png)\n\n## Developer Guide\n\n### Pre-requisites\n\n- Install [Node.js](https://nodejs.org/) (which includes npm)\n- Run `npm install` to install dependencies\n\n### Build the extension\n\n`npm start` to compile and debug\n\nTo load the extension, go to chrome://extensions or edge://extensions, turn on developer mode, click on \"load unpacked\", and navigate to the ./dev folder.\n\n### Production build\n\nProduction builds are automatically created in GitHub with the right version number.\n\nIf you want to create a production build of the extension on your desktop:\n\n- For Chrome/Edge + Firefox output folders in one run: `npm run build`\n- For Firefox-only flow: `npm run build:firefox`\n\nThe build artifacts will be placed in the `build` folder:\n\n- `build/graphxray`\n- `build/graphxray-firefox`\n\n## Available Scripts\n\nIn the project directory, you can run:\n\n### `npm start`\n\nRuns the app in the development mode.\\\nOpen [http://localhost:3000](http://localhost:3000) to view it in the browser.\n\nThe page will reload if you make edits.\\\nYou will also see any lint errors in the console.\n\n### `npm run build`\n\nBuilds the app for production to the `build` folder.\\\nIt correctly bundles React in production mode and optimizes the build for the best performance.\n\nThe build is minified and the filenames include the hashes.\\\nYour app is ready to be deployed!\n\nThis command also creates:\n\n- `build/graphxray` (Chrome/Edge package folder)\n- `build/graphxray-firefox` (Firefox package folder)\n\n### `npm run build:firefox`\n\nBuilds the app specifically for Firefox, using the Firefox manifest (Manifest V2) instead of the Chrome/Edge manifest (Manifest V3).\n\nSee the section about [deployment](https://facebook.github.io/create-react-app/docs/deployment) for more information.\n\n## Adding non-Graph API calls to Ultra X-Ray\n\nUltra X-Ray shows calls to non-Graph API endpoints. Unfortunately, we need to explicitly add each endpoint to the extension.\n\nTo add support for a new endpoint.\n\n1. **Figure out the API endpoint** - View the network requests in the browser's developer tools and find out the domain where the API is hosted.\n1. **Add domain to [domains.js](./src/common/domains.js)** - Add the new domain to the list of domains in the `domains.js` file.\n1. **Add domain to [manifest.json](./src/public/manifest.json)** - Note the manifest requires the / at the end of the domain.\n1. **Test the endpoint** - Make a request to the new blade and verify that it appears in Graph X-Ray.\n\n### Firefox notes\n\nKey Firefox-specific details:\n\n- **Manifest Version**: Firefox build uses Manifest V2 while Chrome/Edge uses Manifest V3.\n- **Background scripts**: Firefox build uses event-based background script handling.\n- **Browser APIs**: The project uses a compatibility layer so both `browser.*` and `chrome.*` usage works.\n- **CSP format**: Firefox manifest uses string CSP format.\n\nFirefox-specific files:\n\n- `public/manifest.firefox.json`\n- `public/dev.firefox.js`\n- `src/common/browserApi.js`\n- `scripts/build-firefox.js`\n\nKnown Firefox limitations:\n\n- DevTools panel behavior can differ slightly from Chromium browsers.\n- Storage quotas differ from Chromium.\n- Some permissions can behave differently.\n\nFirefox debugging tips:\n\n- Use `about:debugging` to inspect extension/background logs.\n- Use browser console (`Ctrl+Shift+J`) for extension runtime errors.\n\n## Feedback and Support\n\nThis is an independently developed application and is not endorsed or supported by Microsoft.\n\nPlease share feedback and report issues on [Github](https://github.com/merill/graphxray/issues).\n\n## Acknowledgements\n\nThis project was originally a hackathon project by [Eunice](https://twitter.com/Eunixnho), Dhruv, Clement, [Monica](https://twitter.com/mumbihere)  \u0026 [@merill](https://twitter.com/merill).\n\nSpecial thanks to [@jorgeasaurus](https://github.com/jorgeasaurus) for major contributions including Firefox support and key reliability improvements such as the PowerShell fallback behavior.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmerill%2Fgraphxray","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmerill%2Fgraphxray","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmerill%2Fgraphxray/lists"}