System Settings
GET /api/system-settings
PUT /api/system-settings
Required privilege: General Settings / View (read) ยท General Settings or Integrations Settings / Edit (write)
System settings control organisation-wide configuration including password policies, data integration connections, and external system integrations.
Settings Object
{
"password_expiration_days": 90,
"integrations": {
"enabled": ["decision-manager", "google-sheets"],
"decision_manager": {
"enabled": true,
"url": "https://dm.internal.acme.com",
"api_key": "***"
},
"pg_portal": {
"enabled": false,
"url": null
},
"google_sheets": {
"enabled": true,
"spreadsheet_id": "1BxiMVs0XRA5nFMdKvBdBZjgmUUqptlbs74OgVE2upms"
},
"sharepoint": {
"enabled": false,
"site_url": null,
"library": null
}
},
"archive": {
"status": "active",
"data_source": "primary"
}
}
Configuration Sections
Password Policy
| Field |
Type |
Description |
password_expiration_days |
integer | null |
Days before passwords expire. null = no expiry |
Integrations
| Integration |
Fields |
Description |
decision_manager |
enabled, url, api_key |
Decision Manager integration |
pg_portal |
enabled, url |
PG Portal (Eka) configuration |
google_sheets |
enabled, spreadsheet_id |
Google Sheets data source |
sharepoint |
enabled, site_url, library |
SharePoint document library |
Archive
| Field |
Type |
Description |
archive.status |
string |
Archive status: active, inactive |
archive.data_source |
string |
Data source configuration |
GET - Read Settings
curl -b cookies.txt "https://acme.knosc.com/api/system-settings"
PUT - Update Settings
PUT /api/system-settings HTTP/1.1
Content-Type: application/json
X-XSRF-TOKEN: <csrf>
{
"password_expiration_days": 90,
"integrations": {
"google_sheets": {
"enabled": true,
"spreadsheet_id": "your-spreadsheet-id"
}
}
}
Sensitive fields like api_key are write-only - they are masked (***) in GET responses.
Errors
| Status |
Code |
Description |
| 400 |
JSON.Invalid |
Malformed settings body |
| 403 |
User.NotPrivileged |
Insufficient privilege |