This document covers the full lifecycle of a custom platform — from initial development through production deployment and ongoing maintenance.
Author → Upload → Test → Deploy → Monitor → Update
Write your script as a JSON file on your workstation. Use an IDE with the JSON schema for autocomplete:
- Schema:
schema/custom-platform-script.schema.json - VS Code setup: the
.vscode/directory in this repo configures schema association automatically.
Start from a template or an existing sample that matches your target system.
Best practices during authoring:
- Start small — get
CheckSystemworking first, then add operations incrementally. - Use the development workflow guide for the upload-test-iterate cycle.
- Test each operation independently before combining them.
Upload your script to SPP using either method:
PowerShell (recommended for development):
# Create a new custom platform with a script
New-SafeguardCustomPlatform -Name "MyPlatform" -ScriptFile .\MyPlatform.json
# Or update an existing platform's script
Import-SafeguardCustomPlatformScript -PlatformToEdit "MyPlatform" -ScriptFile .\MyPlatform.jsonWeb UI:
- Navigate to Asset Management > Connect and Platforms > Custom Platforms
- Click Add
- Browse to your JSON file and upload
SPP validates the script immediately. If validation fails, you get an error message describing the issue. Fix the script and re-upload.
Testing happens in two stages:
Use Test-SafeguardCustomPlatformScript to validate the script before uploading (requires an active SPP connection):
Test-SafeguardCustomPlatformScript ".\MyPlatform.json"After upload, test against a real (non-production) target:
- Create a test asset using your custom platform
- Configure valid credentials
- Run individual operations:
# Test connectivity
Test-SafeguardAsset -AssetToTest "TestHost" -ExtendedLogging
# Test password check
Test-SafeguardAssetAccountPassword -AssetToUse "TestHost" -AccountToUse "testuser" -ExtendedLogging
# Test password change (use a disposable test account!)
Invoke-SafeguardAssetAccountPasswordChange -AssetToUse "TestHost" -AccountToUse "testuser"The -ExtendedLogging flag captures the full execution trace in the task log, which is essential for debugging.
See Testing and Debugging for detailed guidance.
Once testing passes:
- Create production assets using the custom platform
- Assign real service accounts and managed accounts
- Configure check and change schedules
- Set up profiles and access policies as needed
Deployment checklist:
- All operations tested successfully with ExtendedLogging
- Error paths tested (wrong password, unreachable host, locked account)
- Service account has appropriate privileges on the target
- Network connectivity confirmed from the SPP appliance to the target
- Schedules configured appropriately (not too aggressive)
After deployment, monitor platform health through:
- Task logs — Check for failed tasks in the SPP Activity Center
- Password check results — Confirm scheduled checks pass consistently
- Account discovery — If enabled, verify discovered accounts appear correctly
To update a platform script:
- Download the current version: use the Download button in Custom Platforms or the API
- Make your changes locally
- Test the changes against a test asset
- Upload the updated script — SPP replaces the old version
Important: Updating a script does NOT change parameter defaults on existing assets. If you add a new custom parameter with a default value, existing assets won't pick up that default automatically — you need to update them individually or recreate them.
SPP does not version custom platform scripts internally. Best practices:
- Keep your scripts in version control (like this repository)
- Use meaningful commit messages for changes
- Tag releases if you distribute scripts to multiple SPP instances
- Document breaking changes (parameter renames, operation removals) clearly
To deprecate a custom platform:
- Ensure no assets are actively using it (or migrate them to a replacement)
- Delete the custom platform from Asset Management > Custom Platforms
Warning: Deleting a custom platform that is assigned to assets will reassign those assets to the "Other" platform type, which halts all credential management operations.
- Architecture — how custom platforms fit into SPP
- Development Workflow — the upload-test-iterate cycle
- Testing and Debugging — detailed testing guidance