Getting Settings
General Identity Panel settings are included with the home page HTML as a JSON structure embedded in the HTML. This payload has all of the standard settings that are available to all authenticated users, including: Theme, Licenses, Translations, Views, Dashboards, and PageDefaults.
All settings including the above can also be retrieved from /api/settings or /api/settings/{path} where {path} represents the type of setting being fetched.
To retrieve the enumerated settings above simply being an authenticated user is sufficient. Other settings require specific Read|<type> permissions. These settings include:
- Roles
- ServicePanel
- Providers
- UpliftSettings
- Schedules
- Joins
- AccessPanel
Return Data Format
{ "Providers": { // TypeName, e.g. "Providers" or "Email" "$type": "SoftwareIDM.PanelModel.Models.Providers, SoftwareIDM.PanelModel", ... }, ... }
Saving Changes
General JSON settings may be saved by POST request to /api/settings or /api/settings/{path} where the path represents a particular type of settings, e.g. providers, pagedefaults, etc.
Saving settings requires the Write|JsonSettings permission.
NOTE: Even though the Writer role has the Write|* permission, this role is explicitly excluded from making changes to settings, Schedule objects, MIM Test action configuration, or Uplift settings. This allows separation of duty for Panel Service roles and admin roles.
It is possible to POST the complete set of all settings data, or individual settings sections may be posted. The settings JSON upload feature works by posting to this UI using the REST API feature which copies the first uploaded file to the body stream.
When uploading multiple settings types at once, each setting section is authorized separately in case scoping rules have been applied to only allow the role to submit particular settings.
A successful submission will return a 204 No Content result.
All settings changes are also recorded in version control history (which uses a git repository).
Documenting valid settings JSON for posting to the API is beyond the scope of this documentation. Settings documents may be obtained using browser tools by inspecting settings.attributes
A json payload may be obtained by running settings.attributes.<TypeName>.toJSON();
Comments
0 comments
Please sign in to leave a comment.