Skip to content

Kartikpatkar/profile-shift

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

15 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

πŸ“„ ProfileShift – Salesforce Profile to Permission Set Converter

License: MIT Version Chrome Extension Manifest V3

Tagline: Modernize Salesforce security β€” convert Profiles into minimal Permission Sets.


✨ Overview

ProfileShift is a modern, privacy-first Chrome Extension (Manifest V3) that helps Salesforce Admins and Developers convert legacy Profiles into clean, deployable Permission Set metadata.

It works entirely in your browser using your existing authenticated Salesforce session.

πŸ“Œ No external servers πŸ“Œ No OAuth setup required πŸ“Œ No data collection πŸ“Œ Full Metadata API support

ProfileShift is designed to help teams transition from profile-based access control to modern permission-set architecture.


πŸš€ Key Features

πŸ”„ Convert Profile β†’ Permission Set

  • Reads Profile metadata via Salesforce Metadata API
  • Converts into editable in-browser model
  • Generates minimal (β€œdelta-style”) Permission Set XML
  • Only enabled permissions are emitted
  • SFDX-ready output

🧩 Supported Permission Sections

ProfileShift extracts and converts:

βœ” Object Permissions (CRUD, View All, Modify All) βœ” Field-Level Security (Read / Edit) βœ” System Permissions βœ” Apex Class Access βœ” Visualforce Page Access βœ” Tab Settings βœ” Record Type Visibility βœ” Flow Access βœ” External Data Source Access βœ” Named Credential Access (External Credential Principals) βœ” Custom Permissions


🧠 Editable In-Browser Model

  • Clean section-based UI
  • Tab navigation by permission type
  • Direct editing before XML generation
  • Toggle-based permission controls
  • Accurate metadata-to-model mapping

πŸ“€ Export Permission Set

  • Generate valid <PermissionSet> XML
  • Download as permissionSet-meta.xml
  • SFDX-compatible structure
  • Copy XML to clipboard (planned)

πŸš€ Optional Metadata Deploy

  • Deploy generated Permission Set directly to org
  • Uses official Salesforce Metadata API
  • ZIP packaging handled internally
  • Deployment confirmation modal
  • Real-time deploy status polling
  • Error transparency

πŸ”— Connected App Assignment (Optional)

  • Assign generated Permission Set to Admin-approved Connected Apps
  • Metadata patch handled safely
  • Explicit confirmation before deployment
  • Clear error handling for non-admin-approved apps

πŸ–₯️ UI Philosophy

ProfileShift is designed for developers and administrators:

  • Full-page workspace (not popup-only)
  • Minimal distraction UI
  • Dark / Light theme toggle
  • Professional enterprise styling
  • Clear deploy confirmation modal
  • Loading overlays for long operations
  • Toast-based status notifications

πŸ” Privacy & Security

ProfileShift is 100% client-side.

  • No external servers
  • No analytics
  • No telemetry
  • No data transmission
  • No metadata storage outside your browser
  • Uses existing Salesforce session (cookie-based authentication)
  • Does not store or log session IDs

All Metadata API calls are made directly from your browser to Salesforce.


πŸ— Architecture

Built using:

  • Manifest V3 (Service Worker architecture)
  • HTML5, CSS3, Vanilla JavaScript
  • Salesforce SOAP Metadata API
  • Salesforce REST & Tooling API
  • Modular ZIP generator (STORE method)
  • Secure session reuse via cookies
  • Strict CSP compliance

πŸ“Έ Screenshots

🟦 Main Screen

Light Theme

Main Screen - Light Theme

Dark Theme

Main Screen - Dark Theme

πŸ”· Profile Selection

Light Theme

Profile Screen - Light Theme

Dark Theme

Profile Screen - Dark Theme

πŸš€ Deploy Confirmation

Confirm Deploy - Light Theme


πŸ›  Installation

🌐 Install from Chrome Web Store (Recommended)

(Add store link once published)

  1. Visit Chrome Web Store
  2. Click Add to Chrome
  3. Log into your Salesforce org
  4. Open ProfileShift from the extension icon

πŸ”§ Load Manually (Developer Mode)

  1. Clone repository:
git clone https://github.com/YOUR_USERNAME/profileshift.git
  1. Open:
chrome://extensions/
  1. Enable Developer Mode
  2. Click Load unpacked
  3. Select the project root folder

Done πŸŽ‰


πŸ§ͺ Current Capabilities

βœ” Profile metadata extraction βœ” Metadata API read βœ” In-browser permission editing βœ” Delta-style Permission Set generation βœ” Direct Metadata API deployment βœ” Connected App metadata patching (optional) βœ” Dark / Light theme βœ” Busy overlay & status handling


⚠️ Important Notes

  • β€œDelta-style” output emits only enabled permissions.
  • Does not compute a full org-diff against existing Permission Sets.
  • Connected App updates require Admin-approved apps.
  • Deployment modifies your org metadata β€” always review before confirming.

πŸ›£οΈ Roadmap

Planned enhancements:

  • Compare Profile vs Existing Permission Set
  • True diff mode
  • CSV export for audit
  • Bulk profile analysis
  • Dependency validation warnings
  • Git-ready multi-metadata package export
  • Improved permission search/filter
  • Undo/Redo editing support

🀝 Contributing

Contributions are welcome!

Please ensure:

  • No external dependencies added
  • Maintain client-side-only architecture
  • Keep permissions minimal
  • Follow MV3 best practices
  • Do not introduce telemetry

🧠 Author

Built by Kartik Patkar Salesforce Consultant & Developer GitHub β€’ LinkedIn


πŸ“œ License

This project is licensed under the MIT License.


ProfileShift β€” Modernize Salesforce security architecture, safely and locally.


About

Chrome Extension that converts Salesforce Profiles into minimal Permission Set metadata and optionally deploys them via Metadata API.

Topics

Resources

License

Contributing

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors