npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

@cyco77/pptb-usersettings-utiliy

v0.4.0

Published

Your tool to update user settings in Dataverse

Readme

User Settings Utility

Screenshots

Dark Theme

User Settings Utility - Dark Theme

Features

Core Capabilities

  • 👥 User Browser - View all active system users in your Dataverse environment
  • ⚙️ User Settings Management - View and edit detailed user settings
  • 🔄 Bulk Updates - Update settings for multiple users at once
  • 🔍 Advanced Filtering - Filter users by name, email, or business unit
  • 📊 Sortable Data Grid - Sort users by any column with multi-select support
  • 💾 Save Changes - Track and save pending changes with visual feedback
  • 🎨 Theme Support - Automatic light/dark theme switching based on PPTB settings

Editable User Settings

The tool supports viewing and editing various user settings including:

  • Localization: UI Language, Help Language, Currency, Timezone, Format (locale)
  • Navigation: Default Homepage Area, Subarea, and Dashboard
  • Display: Paging Limit, Calendar Type, Default Calendar View, Week Numbers
  • Regional Settings: Date/Time formats, Number formats, Currency formats
  • Email & Sync: Email filtering, Sync intervals, Contact sync settings
  • Advanced: Various personalization and feature toggles

Technical Stack

  • ✅ React 18 with TypeScript
  • ✅ Fluent UI React Components for consistent Microsoft design
  • ✅ Vite for fast development and optimized builds
  • ✅ Power Platform Toolbox API integration
  • ✅ Dataverse API for querying and updating user settings

Structure

pptb-user-settings-utility/
├── src/
│   ├── components/
│   │   ├── Filter.tsx                 # Business unit and text filtering
│   │   ├── Overview.tsx               # Main container component
│   │   ├── SystemuserDetails.tsx      # User details and settings editor
│   │   ├── SystemuserGrid.tsx         # Data grid for system users
│   │   └── usersettings/              # User settings components
│   │       ├── FieldInfoTooltip.tsx   # Tooltip for field info
│   │       ├── FieldRenderers.tsx     # Field rendering utilities
│   │       ├── SettingsSection.tsx    # Settings section component
│   │       ├── UsersettingsTab.tsx    # Main settings tab
│   │       └── ...                    # Additional utilities
│   ├── hooks/
│   │   └── useToolboxAPI.ts           # PPTB API hooks
│   ├── mappers/
│   │   ├── businessunitMapper.ts      # Business unit data mapping
│   │   ├── formatMapper.ts            # Format/locale data mapping
│   │   ├── languageMapper.ts          # Language data mapping
│   │   ├── sitemapMapper.ts           # Sitemap data mapping
│   │   ├── systemuserMapper.ts        # System user data mapping
│   │   ├── timezoneMapper.ts          # Timezone data mapping
│   │   └── usersettingsMapper.ts      # User settings data mapping
│   ├── services/
│   │   └── dataverseService.ts        # Dataverse API queries
│   ├── types/
│   │   ├── businessunit.ts            # Business unit type definitions
│   │   ├── currency.ts                # Currency type definitions
│   │   ├── dashboard.ts               # Dashboard type definitions
│   │   ├── format.ts                  # Format type definitions
│   │   ├── language.ts                # Language type definitions
│   │   ├── pendingChanges.ts          # Pending changes type definitions
│   │   ├── sitemap.ts                 # Sitemap type definitions
│   │   ├── systemuser.ts              # System user type definitions
│   │   ├── timezone.ts                # Timezone type definitions
│   │   └── usersettings.ts            # User settings type definitions
│   ├── App.tsx                        # Main application component
│   ├── main.tsx                       # Entry point
│   └── index.css                      # Global styling
├── dist/                              # Build output
├── icon/                              # Tool icons
├── index.html
├── package.json
├── tsconfig.json
└── vite.config.ts

Installation

Prerequisites

  • Node.js >= 18.0.0
  • npm or yarn
  • Power Platform Toolbox installed

Setup

  1. Clone the repository:
git clone <repository-url>
cd pptb-user-settings-utility
  1. Install dependencies:
npm install

Development

Development Server

Start development server with HMR:

npm run dev

The tool will be available at `http://localhost:5173`

Watch Mode

Build the tool in watch mode for continuous updates:

npm run watch

Production Build

Build the optimized production version:

npm run build

The output will be in the `dist/` directory.

Preview Build

Preview the production build locally:

npm run preview

Usage

In Power Platform Toolbox

  1. Build the tool:
   npm run build
  1. Package the tool (creates npm-shrinkwrap.json):
   npm run finalize-package
  1. Install in Power Platform Toolbox using the PPTB interface

  2. Connect to a Dataverse environment

  3. Launch the tool to view and manage user settings

User Interface

Filter Section

  • Business Unit Dropdown: Filter users by their business unit
  • Search Box: Real-time search across user name, email, and business unit

User Grid

  • Click column headers to sort
  • Use checkboxes to select one or multiple users
  • Columns: Full Name, Email, Business Unit, System User ID

Settings Panel

  • View and edit settings for selected user(s)
  • When multiple users are selected:
    • Fields with matching values show the common value
    • Fields with different values show "No change" placeholder
  • Pending changes are tracked and displayed
  • Click "Save" to apply changes to all selected users

API Usage

The tool uses the Power Platform Toolbox and Dataverse APIs:

Connection Management

// Get current connection
const connection = await window.toolboxAPI.getConnection();

Data Queries

// Query system users
const users = await window.dataverseAPI.queryData(
  "systemusers?$select=systemuserid,fullname,internalemailaddress"
);

// Query user settings
const settings = await window.dataverseAPI.queryData(
  \`usersettingscollection?$filter=systemuserid eq '\${userId}'\`
);

Notifications

// Show notification
await window.toolboxAPI.utils.showNotification({
  title: "Success",
  body: "Settings updated successfully",
  type: "success",
  duration: 3000,
});

License

MIT License - see LICENSE file for details.

Author

Lars Hildebrandt