The Resource Attestation Manager is a comprehensive SharePoint Framework (SPFx) web part designed to streamline resource tracking and attestation for project teams and departments. It acts as a central hub for viewing resource status, assigning ownership, and managing assets.
This solution is tailored for teams that need to maintain an up-to-date inventory of resources (hardware, software, access rights, etc.) and ensure regular validation by their respective owners.
- Status Monitoring:
- A visual dashboard provides an instant health check of all resources.
- Statuses are color-coded using theme colors: Overdue (Red), Urgent (Orange), and Up to Date (Green).
- Resource Categorization:
- Resources are automatically grouped by category (e.g., "Laptops", "Licenses") with dynamic counts displayed on the dashboard.
- Owner Management:
- Create new resources and assign them to specific SharePoint users via the integrated People Picker.
- Role-Based Views: Regular members see only their own resources ("My Resources"), while Admins manage the full inventory.
Since standard users (Members) often have Read-Only access to the master inventory list to prevent accidental deletions, the attestation flow is designed to be secure:
-
Read-Only Access: Members cannot directly edit the "Last Attested" date in the main list.
-
Attestation History list (Audit Trail):
- Instead of modifying the main list directly, attestations are written to a separate History List.
- Duplicate Check: If a resource already has a pending attestation (Status found in History List), the system blocks duplicate submissions.
- Power Automate Integration: A flow triggers on new items in the History List to update the main inventory.
To complete the cycle, create a Flow with the following steps:
- Trigger: "When an item is created" (in the History List).
- Action: "Update item" (in the Main Resource List):
- Matches the Item ID using the
Resource IDfrom the history item. - Sets Status to "Up to Date" (or your configured Attested Status).
- Sets "Last Attested" date to
utcNow().
- Matches the Item ID using the
- Action: "Update item" (in the History List):
- Sets the History Status to "Completed" (to resolve the Pending state).
- Centralized List: View all resources in a clean, responsive detailed list.
- Advanced Filtering: Real-time search by Title, Owner, Status, or Category.
- Sorting & Pagination: Sort by any column and handle large datasets with configurable pagination (5-50 items per page).
- Smart Grouping: Automatically groups resources by category for better organization.
- One-Click Attestation: "Attest" action with a modern confirmation dialog.
- Audit History: All attestations are logged to a separate History List for security and audit trails.
- Duplicate Prevention: Intelligent logic prevents users from submitting multiple attestations if one is already pending.
- Visual Status Indicators: Instant visual feedback for attested (Green), Overdue (Red/Warning), or Pending items.
- Soft Delete: Mark items as deleted without permanently removing them from SharePoint.
- Recovery View: Toggle "Show Deleted Requests" to view and audit deleted items.
- Safety First: Confirmation dialogs for delete actions to prevent accidental data loss.
- Admin Role: Full visibility of all resources and ability to Add New Resources.
- Member Role: Restricted view showing only resources owned by the current user.
- Secure: UI elements (like the "Add" button) are hidden based on permissions.
- Typography: Granular control over font sizes for Headers, Rows, Titles, and Cards.
- Color Coding: specific color pickers and opacity sliders for Alert, Warning, and Attested statuses.
- Configurable Columns: Map every field (Status, Owner, History, etc.) to your specific SharePoint List internal names.
| Property | Type | Description |
|---|---|---|
| Web Part Title | Text | The main heading displayed on the web part. |
| Description | Text | A sub-heading or instructional text. |
| Center Card Text | Toggle | If ON, center-aligns the text in statistics cards. |
| Title Font Size | Slider (10-40px) | Adjusts the size of the Web Part Title. |
| Description Font Size | Slider (8-20px) | Adjusts the size of the Description text. |
| Card Label Font Size | Slider (10-24px) | Controls the size of labels like "Total Resources". |
| Card Value Font Size | Slider (12-48px) | Controls the size of the numeric counts in cards. |
| Table Header Font Size | Slider (8-20px) | Adjusts the size of the table column headers. |
| Table Row Font Size | Slider (8-20px) | Adjusts the size of the text within the table rows. |
Configure which SharePoint Groups map to the application roles.
| Property | Type | Description |
|---|---|---|
| Admin Group | Dropdown | Members of this SharePoint Group have full access (Add/View All). |
| Member Group | Dropdown | Members of this SharePoint Group can only view their own items. |
Map the internal names of your SharePoint List columns to the Web Part fields:
| Property | Type | Description |
|---|---|---|
| Select List | Dropdown | Choose the SharePoint List where resource data is stored. |
| Resource Name Column | Dropdown | (Text) The main title of the resource. |
| Owner Column | Dropdown | (Person) The user responsible for the resource. |
| Category Column | Dropdown | (Choice/Text) Used for grouping and dashboard cards. |
| Date Attested Column | Dropdown | (Date/Time) Used to calculate status. |
| Status Column | Dropdown | (Choice) The current status (e.g., Overdue, Up to Date). |
Highlight critical statuses (like "Action Required") with a custom color.
| Property | Type | Description |
|---|---|---|
| Alert Status Choice | Dropdown | Select the status value that should trigger an alert. |
| Alert Color | Color Picker | Choose the color to apply to cards and rows matching the Alert Status. |
Highlight secondary statuses (like "Overdue") with a different custom color.
| Property | Type | Description |
|---|---|---|
| Warning Status Choice | Dropdown | Select the status value that should trigger a warning. |
| Warning Color | Color Picker | Choose the color to apply to cards and rows matching the Warning Status. |
To maintain a secure audit trail, this solution writes attestation events to a separate SharePoint List.
| Property | Type | Description |
|---|---|---|
| Select History List | Dropdown | The secondary list used to store history logs. |
| Resource ID Column | Dropdown | (Number/Text) Stores the ID of the attested resource. |
| Owner Column | Dropdown | (Person/Text) Stores who attested the resource. |
| Date Attested Column | Dropdown | (Date/Time) Stores when the attestation happened. |
| History Status Column | Dropdown | (Choice) Stores the workflow status ('Not Started', 'Completed'). Used for Duplicate Checks. |
instead of permanently deleting items, you can mark them as "Soft Deleted" to preserve data integrity.
| Property | Type | Description |
|---|---|---|
| Soft Delete Column | Dropdown | (Choice/Yes/No) A column in the main list to mark items as deleted. |
| Show Deleted Requests | Toggle | Default visibility of deleted items in the dashboard. |
Define the look and feel for resources that are in good standing.
| Property | Type | Description |
|---|---|---|
| Attested Status Choice | Dropdown | The status value indicating a resource is valid (e.g., "Up to Date"). |
| Attested Color | Color Picker | Green by default. |
| Attested Opacity | Slider | Background opacity percentage. |
- Node.js (LTS version)
- SharePoint Online tenant
@rushstack/heftglobally installed
-
Clone this repository:
git clone <repository-url> cd ResourceAttestationManager
-
Install dependencies:
npm install
-
Start the local workbench:
heft start
-
Deploy to SharePoint:
heft build --production heft bundle --production heft package-solution --production
-
Upload the
.sppkgfile fromsharepoint/solution/to your App Catalog.
THIS CODE IS PROVIDED AS IS WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESS OR IMPLIED, INCLUDING ANY IMPLIED WARRANTIES OF FITNESS FOR A PARTICULAR PURPOSE, MERCHANTABILITY, OR NON-INFRINGEMENT.
