@agility/management-sdk 0.1.36 → 0.1.38

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (263) hide show
  1. package/README.md +396 -317
  2. package/dist/apiMethods/clientInstance.d.ts +2 -0
  3. package/dist/apiMethods/clientInstance.js +11 -2
  4. package/dist/apiMethods/containerMethods.d.ts +3 -0
  5. package/dist/apiMethods/containerMethods.js +43 -9
  6. package/dist/apiMethods/contentMethods.d.ts +12 -0
  7. package/dist/apiMethods/contentMethods.js +100 -46
  8. package/dist/apiMethods/instanceMethods.d.ts +13 -0
  9. package/dist/apiMethods/instanceMethods.js +48 -0
  10. package/dist/apiMethods/pageMethods.d.ts +12 -0
  11. package/dist/apiMethods/pageMethods.js +88 -34
  12. package/dist/enums/contentViewType.d.ts +6 -0
  13. package/dist/enums/contentViewType.js +10 -0
  14. package/dist/index.d.ts +3 -0
  15. package/dist/index.js +3 -0
  16. package/dist/models/fetchApiStatus.d.ts +38 -0
  17. package/dist/models/fetchApiStatus.js +2 -0
  18. package/dist/models/pagedResult.d.ts +4 -0
  19. package/dist/models/pagedResult.js +2 -0
  20. package/docs/asset-methods.md +381 -381
  21. package/docs/auth-component.md +360 -360
  22. package/docs/auth.md +593 -593
  23. package/docs/batch-methods.md +243 -243
  24. package/docs/cicd.md +606 -606
  25. package/docs/container-methods.md +267 -267
  26. package/docs/content-methods.md +491 -422
  27. package/docs/instance-methods.md +185 -105
  28. package/docs/instance-user-methods.md +230 -230
  29. package/docs/model-methods.md +433 -433
  30. package/docs/multi-instance-operations.md +191 -191
  31. package/docs/page-methods.md +737 -670
  32. package/docs/server-user-methods.md +279 -279
  33. package/docs/webhook-methods.md +451 -451
  34. package/license.txt +20 -20
  35. package/package.json +40 -40
  36. package/tsconfig.json +14 -14
  37. package/.cursor/api-coverage.md +0 -217
  38. package/.cursor/api-documentation-manifest.md +0 -275
  39. package/.cursor/api-functions-analysis.md +0 -111
  40. package/.cursor/breakout-manifest.md +0 -278
  41. package/.cursor/docs-final-check.md +0 -269
  42. package/.cursor/github-actions-improvements.md +0 -76
  43. package/.cursor/hardening.md +0 -271
  44. package/.cursor/linting-fix.md +0 -160
  45. package/.cursor/manifest.md +0 -243
  46. package/.cursor/mocks.md +0 -100
  47. package/.cursor/test-coverage.md +0 -841
  48. package/.env +0 -92
  49. package/coverage/base.css +0 -224
  50. package/coverage/block-navigation.js +0 -87
  51. package/coverage/coverage-summary.json +0 -43
  52. package/coverage/favicon.png +0 -0
  53. package/coverage/index.html +0 -161
  54. package/coverage/lcov-report/base.css +0 -224
  55. package/coverage/lcov-report/block-navigation.js +0 -87
  56. package/coverage/lcov-report/favicon.png +0 -0
  57. package/coverage/lcov-report/index.html +0 -161
  58. package/coverage/lcov-report/prettify.css +0 -1
  59. package/coverage/lcov-report/prettify.js +0 -2
  60. package/coverage/lcov-report/sort-arrow-sprite.png +0 -0
  61. package/coverage/lcov-report/sorter.js +0 -210
  62. package/coverage/lcov-report/src/apiClient.ts.html +0 -199
  63. package/coverage/lcov-report/src/apiMethods/assetMethods.ts.html +0 -682
  64. package/coverage/lcov-report/src/apiMethods/batchMethods.ts.html +0 -736
  65. package/coverage/lcov-report/src/apiMethods/clientInstance.ts.html +0 -403
  66. package/coverage/lcov-report/src/apiMethods/containerMethods.ts.html +0 -460
  67. package/coverage/lcov-report/src/apiMethods/contentMethods.ts.html +0 -1183
  68. package/coverage/lcov-report/src/apiMethods/index.html +0 -266
  69. package/coverage/lcov-report/src/apiMethods/instanceMethods.ts.html +0 -160
  70. package/coverage/lcov-report/src/apiMethods/instanceUserMethods.ts.html +0 -268
  71. package/coverage/lcov-report/src/apiMethods/modelMethods.ts.html +0 -352
  72. package/coverage/lcov-report/src/apiMethods/pageMethods.ts.html +0 -1276
  73. package/coverage/lcov-report/src/apiMethods/serverUserMethods.ts.html +0 -196
  74. package/coverage/lcov-report/src/apiMethods/webhookMethods.ts.html +0 -271
  75. package/coverage/lcov-report/src/enums/batchItemType.ts.html +0 -106
  76. package/coverage/lcov-report/src/enums/batchOperationType.ts.html +0 -142
  77. package/coverage/lcov-report/src/enums/batchState..ts.html +0 -106
  78. package/coverage/lcov-report/src/enums/index.html +0 -161
  79. package/coverage/lcov-report/src/enums/workflowOperationType.ts.html +0 -175
  80. package/coverage/lcov-report/src/index.html +0 -116
  81. package/coverage/lcov-report/src/models/assetContainer.ts.html +0 -106
  82. package/coverage/lcov-report/src/models/assetGalleries.ts.html +0 -103
  83. package/coverage/lcov-report/src/models/assetMediaGrouping.ts.html +0 -136
  84. package/coverage/lcov-report/src/models/assetMediaGroupingMetaData.ts.html +0 -97
  85. package/coverage/lcov-report/src/models/batch.ts.html +0 -178
  86. package/coverage/lcov-report/src/models/batchItem.ts.html +0 -127
  87. package/coverage/lcov-report/src/models/container.ts.html +0 -232
  88. package/coverage/lcov-report/src/models/contentDefinitionTypeID.ts.html +0 -142
  89. package/coverage/lcov-report/src/models/contentItem.ts.html +0 -202
  90. package/coverage/lcov-report/src/models/contentSectionDefaultModule.ts.html +0 -106
  91. package/coverage/lcov-report/src/models/contentSectionDefinition.ts.html +0 -196
  92. package/coverage/lcov-report/src/models/contentViewColumn.ts.html +0 -109
  93. package/coverage/lcov-report/src/models/exception.ts.html +0 -109
  94. package/coverage/lcov-report/src/models/index.html +0 -476
  95. package/coverage/lcov-report/src/models/instanceRole.ts.html +0 -106
  96. package/coverage/lcov-report/src/models/instanceUser.ts.html +0 -130
  97. package/coverage/lcov-report/src/models/locales.ts.html +0 -100
  98. package/coverage/lcov-report/src/models/media.ts.html +0 -178
  99. package/coverage/lcov-report/src/models/model.ts.html +0 -172
  100. package/coverage/lcov-report/src/models/notification.ts.html +0 -124
  101. package/coverage/lcov-report/src/models/options.ts.html +0 -109
  102. package/coverage/lcov-report/src/models/pageItem.ts.html +0 -268
  103. package/coverage/lcov-report/src/models/pageModel.ts.html +0 -130
  104. package/coverage/lcov-report/src/models/sharedModule.ts.html +0 -106
  105. package/coverage/lcov-report/src/models/sitemap.ts.html +0 -148
  106. package/coverage/lcov-report/src/models/websiteUser.ts.html +0 -157
  107. package/coverage/lcov.info +0 -1459
  108. package/coverage/prettify.css +0 -1
  109. package/coverage/prettify.js +0 -2
  110. package/coverage/sort-arrow-sprite.png +0 -0
  111. package/coverage/sorter.js +0 -210
  112. package/coverage/src/apiClient.ts.html +0 -199
  113. package/coverage/src/apiMethods/assetMethods.ts.html +0 -682
  114. package/coverage/src/apiMethods/batchMethods.ts.html +0 -736
  115. package/coverage/src/apiMethods/clientInstance.ts.html +0 -403
  116. package/coverage/src/apiMethods/containerMethods.ts.html +0 -460
  117. package/coverage/src/apiMethods/contentMethods.ts.html +0 -1183
  118. package/coverage/src/apiMethods/index.html +0 -266
  119. package/coverage/src/apiMethods/instanceMethods.ts.html +0 -160
  120. package/coverage/src/apiMethods/instanceUserMethods.ts.html +0 -268
  121. package/coverage/src/apiMethods/modelMethods.ts.html +0 -352
  122. package/coverage/src/apiMethods/pageMethods.ts.html +0 -1276
  123. package/coverage/src/apiMethods/serverUserMethods.ts.html +0 -196
  124. package/coverage/src/apiMethods/webhookMethods.ts.html +0 -271
  125. package/coverage/src/enums/batchItemType.ts.html +0 -106
  126. package/coverage/src/enums/batchOperationType.ts.html +0 -142
  127. package/coverage/src/enums/batchState..ts.html +0 -106
  128. package/coverage/src/enums/index.html +0 -161
  129. package/coverage/src/enums/workflowOperationType.ts.html +0 -175
  130. package/coverage/src/index.html +0 -116
  131. package/coverage/src/models/assetContainer.ts.html +0 -106
  132. package/coverage/src/models/assetGalleries.ts.html +0 -103
  133. package/coverage/src/models/assetMediaGrouping.ts.html +0 -136
  134. package/coverage/src/models/assetMediaGroupingMetaData.ts.html +0 -97
  135. package/coverage/src/models/batch.ts.html +0 -178
  136. package/coverage/src/models/batchItem.ts.html +0 -127
  137. package/coverage/src/models/container.ts.html +0 -232
  138. package/coverage/src/models/contentDefinitionTypeID.ts.html +0 -142
  139. package/coverage/src/models/contentItem.ts.html +0 -202
  140. package/coverage/src/models/contentSectionDefaultModule.ts.html +0 -106
  141. package/coverage/src/models/contentSectionDefinition.ts.html +0 -196
  142. package/coverage/src/models/contentViewColumn.ts.html +0 -109
  143. package/coverage/src/models/exception.ts.html +0 -109
  144. package/coverage/src/models/index.html +0 -476
  145. package/coverage/src/models/instanceRole.ts.html +0 -106
  146. package/coverage/src/models/instanceUser.ts.html +0 -130
  147. package/coverage/src/models/locales.ts.html +0 -100
  148. package/coverage/src/models/media.ts.html +0 -178
  149. package/coverage/src/models/model.ts.html +0 -172
  150. package/coverage/src/models/notification.ts.html +0 -124
  151. package/coverage/src/models/options.ts.html +0 -109
  152. package/coverage/src/models/pageItem.ts.html +0 -268
  153. package/coverage/src/models/pageModel.ts.html +0 -130
  154. package/coverage/src/models/sharedModule.ts.html +0 -106
  155. package/coverage/src/models/sitemap.ts.html +0 -148
  156. package/coverage/src/models/websiteUser.ts.html +0 -157
  157. package/dist/.tsbuildinfo +0 -1
  158. package/dist/apiClient.d.ts.map +0 -1
  159. package/dist/apiClient.js.map +0 -1
  160. package/dist/apiMethods/assetMethods.d.ts.map +0 -1
  161. package/dist/apiMethods/assetMethods.js.map +0 -1
  162. package/dist/apiMethods/batchMethods.d.ts.map +0 -1
  163. package/dist/apiMethods/batchMethods.js.map +0 -1
  164. package/dist/apiMethods/clientInstance.d.ts.map +0 -1
  165. package/dist/apiMethods/clientInstance.js.map +0 -1
  166. package/dist/apiMethods/containerMethods.d.ts.map +0 -1
  167. package/dist/apiMethods/containerMethods.js.map +0 -1
  168. package/dist/apiMethods/contentMethods.d.ts.map +0 -1
  169. package/dist/apiMethods/contentMethods.js.map +0 -1
  170. package/dist/apiMethods/instanceMethods.d.ts.map +0 -1
  171. package/dist/apiMethods/instanceMethods.js.map +0 -1
  172. package/dist/apiMethods/instanceUserMethods.d.ts.map +0 -1
  173. package/dist/apiMethods/instanceUserMethods.js.map +0 -1
  174. package/dist/apiMethods/modelMethods.d.ts.map +0 -1
  175. package/dist/apiMethods/modelMethods.js.map +0 -1
  176. package/dist/apiMethods/pageMethods.d.ts.map +0 -1
  177. package/dist/apiMethods/pageMethods.js.map +0 -1
  178. package/dist/apiMethods/serverUserMethods.d.ts.map +0 -1
  179. package/dist/apiMethods/serverUserMethods.js.map +0 -1
  180. package/dist/apiMethods/webhookMethods.d.ts.map +0 -1
  181. package/dist/apiMethods/webhookMethods.js.map +0 -1
  182. package/dist/enums/assetGroupingType.d.ts.map +0 -1
  183. package/dist/enums/assetGroupingType.js.map +0 -1
  184. package/dist/enums/batchItemType.d.ts.map +0 -1
  185. package/dist/enums/batchItemType.js.map +0 -1
  186. package/dist/enums/batchOperationType.d.ts.map +0 -1
  187. package/dist/enums/batchOperationType.js.map +0 -1
  188. package/dist/enums/batchState..d.ts.map +0 -1
  189. package/dist/enums/batchState..js.map +0 -1
  190. package/dist/enums/pageItemTemplateType.d.ts.map +0 -1
  191. package/dist/enums/pageItemTemplateType.js.map +0 -1
  192. package/dist/enums/workflowOperationType.d.ts.map +0 -1
  193. package/dist/enums/workflowOperationType.js.map +0 -1
  194. package/dist/index.d.ts.map +0 -1
  195. package/dist/index.js.map +0 -1
  196. package/dist/models/assetContainer.d.ts.map +0 -1
  197. package/dist/models/assetContainer.js.map +0 -1
  198. package/dist/models/assetGalleries.d.ts.map +0 -1
  199. package/dist/models/assetGalleries.js.map +0 -1
  200. package/dist/models/assetMediaGrouping.d.ts.map +0 -1
  201. package/dist/models/assetMediaGrouping.js.map +0 -1
  202. package/dist/models/assetMediaGroupingMetaData.d.ts.map +0 -1
  203. package/dist/models/assetMediaGroupingMetaData.js.map +0 -1
  204. package/dist/models/batch.d.ts.map +0 -1
  205. package/dist/models/batch.js.map +0 -1
  206. package/dist/models/batchItem.d.ts.map +0 -1
  207. package/dist/models/batchItem.js.map +0 -1
  208. package/dist/models/batchTypes.d.ts.map +0 -1
  209. package/dist/models/batchTypes.js.map +0 -1
  210. package/dist/models/container.d.ts.map +0 -1
  211. package/dist/models/container.js.map +0 -1
  212. package/dist/models/contentDefinitionTypeID.d.ts.map +0 -1
  213. package/dist/models/contentDefinitionTypeID.js.map +0 -1
  214. package/dist/models/contentItem.d.ts.map +0 -1
  215. package/dist/models/contentItem.js.map +0 -1
  216. package/dist/models/contentItemHistory.d.ts.map +0 -1
  217. package/dist/models/contentItemHistory.js.map +0 -1
  218. package/dist/models/contentListFilterModel.d.ts.map +0 -1
  219. package/dist/models/contentListFilterModel.js.map +0 -1
  220. package/dist/models/contentSectionDefaultModule.d.ts.map +0 -1
  221. package/dist/models/contentSectionDefaultModule.js.map +0 -1
  222. package/dist/models/contentSectionDefinition.d.ts.map +0 -1
  223. package/dist/models/contentSectionDefinition.js.map +0 -1
  224. package/dist/models/contentViewColumn.d.ts.map +0 -1
  225. package/dist/models/contentViewColumn.js.map +0 -1
  226. package/dist/models/exception.d.ts.map +0 -1
  227. package/dist/models/exception.js.map +0 -1
  228. package/dist/models/instanceRole.d.ts.map +0 -1
  229. package/dist/models/instanceRole.js.map +0 -1
  230. package/dist/models/instanceUser.d.ts.map +0 -1
  231. package/dist/models/instanceUser.js.map +0 -1
  232. package/dist/models/itemComments.d.ts.map +0 -1
  233. package/dist/models/itemComments.js.map +0 -1
  234. package/dist/models/listParams.d.ts.map +0 -1
  235. package/dist/models/listParams.js.map +0 -1
  236. package/dist/models/locales.d.ts.map +0 -1
  237. package/dist/models/locales.js.map +0 -1
  238. package/dist/models/media.d.ts.map +0 -1
  239. package/dist/models/media.js.map +0 -1
  240. package/dist/models/model.d.ts.map +0 -1
  241. package/dist/models/model.js.map +0 -1
  242. package/dist/models/notification.d.ts.map +0 -1
  243. package/dist/models/notification.js.map +0 -1
  244. package/dist/models/options.d.ts.map +0 -1
  245. package/dist/models/options.js.map +0 -1
  246. package/dist/models/pageHistory.d.ts.map +0 -1
  247. package/dist/models/pageHistory.js.map +0 -1
  248. package/dist/models/pageItem.d.ts.map +0 -1
  249. package/dist/models/pageItem.js.map +0 -1
  250. package/dist/models/pageModel.d.ts.map +0 -1
  251. package/dist/models/pageModel.js.map +0 -1
  252. package/dist/models/serverUser.d.ts.map +0 -1
  253. package/dist/models/serverUser.js.map +0 -1
  254. package/dist/models/sharedModule.d.ts.map +0 -1
  255. package/dist/models/sharedModule.js.map +0 -1
  256. package/dist/models/sitemap.d.ts.map +0 -1
  257. package/dist/models/sitemap.js.map +0 -1
  258. package/dist/models/webhook.d.ts.map +0 -1
  259. package/dist/models/webhook.js.map +0 -1
  260. package/dist/models/websiteListing.d.ts.map +0 -1
  261. package/dist/models/websiteListing.js.map +0 -1
  262. package/dist/models/websiteUser.d.ts.map +0 -1
  263. package/dist/models/websiteUser.js.map +0 -1
@@ -1,280 +1,280 @@
1
- # Agility CMS & Management API TypeScript SDK
2
-
3
- ## ServerUserMethods
4
-
5
- This class provides server-level user management operations for Agility CMS. These methods handle user accounts at the server level, which is different from instance-level users and provides broader administrative capabilities.
6
-
7
- **Important Notes:**
8
- - Server user methods typically require server-level administrative privileges
9
- - These operations affect user accounts across multiple instances
10
- - Server users have elevated permissions compared to instance users
11
- - Server user management is typically used for system administration
12
- - Changes to server users may affect access to multiple instances
13
-
14
- ### Function List
15
- - [me](#me) - Retrieves current server user information
16
- - [you](#you) - Retrieves specific server user information
17
-
18
- ---
19
-
20
- ### me
21
-
22
- Retrieves current authenticated server user information.
23
-
24
- | Parameter | Type | Required | Description |
25
- |-----------|------|----------|-------------|
26
- | `guid` | `string` | Yes | Current website GUID |
27
-
28
- **Returns:** `ServerUser` - Complete server user object with roles and permissions
29
-
30
- **Usage Example:**
31
- ```typescript
32
- const serverUser = await apiClient.serverUserMethods.me(guid);
33
- console.log(`Server User: ${serverUser.firstName} ${serverUser.lastName}`);
34
- console.log(`Email: ${serverUser.emailAddress}`);
35
- console.log(`Role: ${serverUser.roleName}`);
36
- console.log(`Status: ${serverUser.isActive ? 'Active' : 'Inactive'}`);
37
- console.log(`Last Login: ${serverUser.lastLoginDate}`);
38
- console.log(`Created: ${serverUser.createdDate}`);
39
-
40
- // Check server-level permissions
41
- if (serverUser.permissions && serverUser.permissions.length > 0) {
42
- console.log('Server permissions:');
43
- serverUser.permissions.forEach(permission => {
44
- console.log(` - ${permission}`);
45
- });
46
- } else {
47
- console.log('User has no specific server permissions assigned');
48
- }
49
-
50
- // Check if user is a server administrator
51
- const isServerAdmin = serverUser.roleName === 'Server Administrator' ||
52
- serverUser.roleName === 'System Administrator';
53
- console.log(`Is Server Administrator: ${isServerAdmin}`);
54
-
55
- // Display instance access
56
- if (serverUser.instanceAccess && serverUser.instanceAccess.length > 0) {
57
- console.log('Instance access:');
58
- serverUser.instanceAccess.forEach(access => {
59
- console.log(` - Instance: ${access.instanceName} (${access.role})`);
60
- });
61
- } else {
62
- console.log('User has no instance access assigned');
63
- }
64
- ```
65
-
66
- **Response Properties:**
67
- The `ServerUser` object includes:
68
- - `userID`: Unique identifier for the server user
69
- - `firstName`: User's first name
70
- - `lastName`: User's last name
71
- - `emailAddress`: User's email address
72
- - `roleName`: The user's server-level role
73
- - `isActive`: Whether the user account is active
74
- - `lastLoginDate`: Date of the user's last login
75
- - `createdDate`: Date the user account was created
76
- - `permissions`: Array of server-level permissions
77
- - `instanceAccess`: Array of instance access configurations
78
-
79
- **Server User Roles:**
80
- Common server-level roles include:
81
- - `Server Administrator`: Full server-level access
82
- - `System Administrator`: Complete system control
83
- - `Instance Manager`: Can manage multiple instances
84
- - `Support User`: Limited access for support purposes
85
-
86
- **Error Handling:**
87
- - Throws `Exception` when server user not found
88
- - Throws `Exception` when insufficient permissions to view server user details
89
-
90
- ### you
91
-
92
- Retrieves specific server user information by server user ID.
93
-
94
- | Parameter | Type | Required | Description |
95
- |-----------|------|----------|-------------|
96
- | `guid` | `string` | Yes | Current website GUID |
97
- | `serverUserID` | `number` | Yes | The server user ID to retrieve |
98
-
99
- **Returns:** `any` - Server user information and data
100
-
101
- **Usage Example:**
102
- ```typescript
103
- // Create a new server user
104
- const newServerUser = {
105
- firstName: 'John',
106
- lastName: 'Admin',
107
- emailAddress: 'john.admin@company.com',
108
- roleName: 'Server Administrator',
109
- isActive: true,
110
- password: 'SecureServerPassword123!', // Only required for new users
111
- permissions: [
112
- 'server.read',
113
- 'server.write',
114
- 'instance.create',
115
- 'instance.manage'
116
- ],
117
- instanceAccess: [
118
- {
119
- instanceGUID: 'instance-guid-1',
120
- instanceName: 'Production Instance',
121
- role: 'Administrator'
122
- },
123
- {
124
- instanceGUID: 'instance-guid-2',
125
- instanceName: 'Staging Instance',
126
- role: 'Editor'
127
- }
128
- ]
129
- };
130
-
131
- const savedServerUser = await apiClient.serverUserMethods.saveServerUser(
132
- newServerUser,
133
- guid
134
- );
135
- console.log('Server user created with ID:', savedServerUser.userID);
136
-
137
- // Update existing server user
138
- const existingServerUser = await apiClient.serverUserMethods.getServerUser(123, guid);
139
- existingServerUser.firstName = 'Jane';
140
- existingServerUser.roleName = 'Instance Manager';
141
- existingServerUser.isActive = true;
142
-
143
- // Add new instance access
144
- existingServerUser.instanceAccess.push({
145
- instanceGUID: 'new-instance-guid',
146
- instanceName: 'New Instance',
147
- role: 'Publisher'
148
- });
149
-
150
- const updatedServerUser = await apiClient.serverUserMethods.saveServerUser(
151
- existingServerUser,
152
- guid
153
- );
154
- console.log('Server user updated:', updatedServerUser.emailAddress);
155
-
156
- // Grant server-level permissions
157
- const grantServerPermissions = async (userID, permissions) => {
158
- const user = await apiClient.serverUserMethods.getServerUser(userID, guid);
159
- user.permissions = [...new Set([...user.permissions, ...permissions])];
160
- return await apiClient.serverUserMethods.saveServerUser(user, guid);
161
- };
162
-
163
- // Promote user to server administrator
164
- const promoteToServerAdmin = async (userID) => {
165
- const user = await apiClient.serverUserMethods.getServerUser(userID, guid);
166
- user.roleName = 'Server Administrator';
167
- user.permissions = [
168
- 'server.read',
169
- 'server.write',
170
- 'instance.create',
171
- 'instance.manage',
172
- 'user.manage'
173
- ];
174
- return await apiClient.serverUserMethods.saveServerUser(user, guid);
175
- };
176
-
177
- // Manage instance access
178
- const updateInstanceAccess = async (userID, instanceGUID, role) => {
179
- const user = await apiClient.serverUserMethods.getServerUser(userID, guid);
180
-
181
- // Find existing access or create new
182
- const existingAccess = user.instanceAccess.find(
183
- access => access.instanceGUID === instanceGUID
184
- );
185
-
186
- if (existingAccess) {
187
- existingAccess.role = role;
188
- } else {
189
- user.instanceAccess.push({
190
- instanceGUID: instanceGUID,
191
- instanceName: 'Instance Name', // You'd get this from instance details
192
- role: role
193
- });
194
- }
195
-
196
- return await apiClient.serverUserMethods.saveServerUser(user, guid);
197
- };
198
- ```
199
-
200
- **Server User Structure:**
201
- ```typescript
202
- interface ServerUser {
203
- userID?: number; // Auto-generated for new users
204
- firstName: string; // User's first name (required)
205
- lastName: string; // User's last name (required)
206
- emailAddress: string; // User's email address (required, unique)
207
- roleName: string; // Server-level role (required)
208
- isActive: boolean; // Whether the account is active
209
- password?: string; // Required for new users only
210
- permissions: string[]; // Array of server-level permissions
211
- instanceAccess: InstanceAccess[]; // Array of instance access configurations
212
- lastLoginDate?: string; // Auto-generated
213
- createdDate?: string; // Auto-generated
214
- }
215
-
216
- interface InstanceAccess {
217
- instanceGUID: string; // Instance identifier
218
- instanceName: string; // Human-readable instance name
219
- role: string; // Role within that instance
220
- }
221
- ```
222
-
223
- **Server-Level Permissions:**
224
- Common server permissions include:
225
- - `server.read`: Read server configuration
226
- - `server.write`: Modify server configuration
227
- - `instance.create`: Create new instances
228
- - `instance.manage`: Manage existing instances
229
- - `user.manage`: Manage server users
230
- - `system.admin`: Full system administration
231
-
232
- **Instance Access Configuration:**
233
- - Each server user can have access to multiple instances
234
- - Access is granted with specific roles per instance
235
- - Instance access can be managed independently of server-level permissions
236
- - Common instance roles: Administrator, Editor, Publisher, Contributor
237
-
238
- **Validation Rules:**
239
- - `emailAddress` must be unique across all server users
240
- - `password` is required for new users (not needed for updates)
241
- - `firstName` and `lastName` are required
242
- - `roleName` must be a valid server-level role
243
- - `instanceAccess` entries must reference valid instances
244
-
245
- **Error Handling:**
246
- - Throws `Exception` when validation fails (duplicate email, invalid role, etc.)
247
- - Throws `Exception` when save operation fails
248
- - Throws `Exception` when insufficient permissions to create/update server users
249
- - Throws `Exception` when instance access references invalid instances
250
-
251
- **Security Considerations:**
252
- - Server user operations require the highest level of permissions
253
- - Changes to server users can affect multiple instances
254
- - Always validate instance access before granting permissions
255
- - Consider using role-based access control for server users
256
- - Monitor server user activity for security compliance
257
-
258
- **Best Practices:**
259
- - Use principle of least privilege when assigning server permissions
260
- - Regularly review and audit server user accounts
261
- - Implement strong password policies for server users
262
- - Deactivate unused server user accounts
263
- - Log all server user management activities
264
-
265
- ---
266
-
267
- ## Navigation
268
- - [← Back to Main Documentation](../README.md)
269
- - [Authentication & Setup](./auth.md)
270
- - [Multi-Instance Operations](./multi-instance-operations.md)
271
- - [AssetMethods](./asset-methods.md)
272
- - [BatchMethods](./batch-methods.md)
273
- - [ContainerMethods](./container-methods.md)
274
- - [ContentMethods](./content-methods.md)
275
- - [InstanceMethods](./instance-methods.md)
276
- - [InstanceUserMethods](./instance-user-methods.md)
277
- - [ModelMethods](./model-methods.md)
278
- - [PageMethods](./page-methods.md)
279
- - **ServerUserMethods** *(current)*
1
+ # Agility CMS & Management API TypeScript SDK
2
+
3
+ ## ServerUserMethods
4
+
5
+ This class provides server-level user management operations for Agility CMS. These methods handle user accounts at the server level, which is different from instance-level users and provides broader administrative capabilities.
6
+
7
+ **Important Notes:**
8
+ - Server user methods typically require server-level administrative privileges
9
+ - These operations affect user accounts across multiple instances
10
+ - Server users have elevated permissions compared to instance users
11
+ - Server user management is typically used for system administration
12
+ - Changes to server users may affect access to multiple instances
13
+
14
+ ### Function List
15
+ - [me](#me) - Retrieves current server user information
16
+ - [you](#you) - Retrieves specific server user information
17
+
18
+ ---
19
+
20
+ ### me
21
+
22
+ Retrieves current authenticated server user information.
23
+
24
+ | Parameter | Type | Required | Description |
25
+ |-----------|------|----------|-------------|
26
+ | `guid` | `string` | Yes | Current website GUID |
27
+
28
+ **Returns:** `ServerUser` - Complete server user object with roles and permissions
29
+
30
+ **Usage Example:**
31
+ ```typescript
32
+ const serverUser = await apiClient.serverUserMethods.me(guid);
33
+ console.log(`Server User: ${serverUser.firstName} ${serverUser.lastName}`);
34
+ console.log(`Email: ${serverUser.emailAddress}`);
35
+ console.log(`Role: ${serverUser.roleName}`);
36
+ console.log(`Status: ${serverUser.isActive ? 'Active' : 'Inactive'}`);
37
+ console.log(`Last Login: ${serverUser.lastLoginDate}`);
38
+ console.log(`Created: ${serverUser.createdDate}`);
39
+
40
+ // Check server-level permissions
41
+ if (serverUser.permissions && serverUser.permissions.length > 0) {
42
+ console.log('Server permissions:');
43
+ serverUser.permissions.forEach(permission => {
44
+ console.log(` - ${permission}`);
45
+ });
46
+ } else {
47
+ console.log('User has no specific server permissions assigned');
48
+ }
49
+
50
+ // Check if user is a server administrator
51
+ const isServerAdmin = serverUser.roleName === 'Server Administrator' ||
52
+ serverUser.roleName === 'System Administrator';
53
+ console.log(`Is Server Administrator: ${isServerAdmin}`);
54
+
55
+ // Display instance access
56
+ if (serverUser.instanceAccess && serverUser.instanceAccess.length > 0) {
57
+ console.log('Instance access:');
58
+ serverUser.instanceAccess.forEach(access => {
59
+ console.log(` - Instance: ${access.instanceName} (${access.role})`);
60
+ });
61
+ } else {
62
+ console.log('User has no instance access assigned');
63
+ }
64
+ ```
65
+
66
+ **Response Properties:**
67
+ The `ServerUser` object includes:
68
+ - `userID`: Unique identifier for the server user
69
+ - `firstName`: User's first name
70
+ - `lastName`: User's last name
71
+ - `emailAddress`: User's email address
72
+ - `roleName`: The user's server-level role
73
+ - `isActive`: Whether the user account is active
74
+ - `lastLoginDate`: Date of the user's last login
75
+ - `createdDate`: Date the user account was created
76
+ - `permissions`: Array of server-level permissions
77
+ - `instanceAccess`: Array of instance access configurations
78
+
79
+ **Server User Roles:**
80
+ Common server-level roles include:
81
+ - `Server Administrator`: Full server-level access
82
+ - `System Administrator`: Complete system control
83
+ - `Instance Manager`: Can manage multiple instances
84
+ - `Support User`: Limited access for support purposes
85
+
86
+ **Error Handling:**
87
+ - Throws `Exception` when server user not found
88
+ - Throws `Exception` when insufficient permissions to view server user details
89
+
90
+ ### you
91
+
92
+ Retrieves specific server user information by server user ID.
93
+
94
+ | Parameter | Type | Required | Description |
95
+ |-----------|------|----------|-------------|
96
+ | `guid` | `string` | Yes | Current website GUID |
97
+ | `serverUserID` | `number` | Yes | The server user ID to retrieve |
98
+
99
+ **Returns:** `any` - Server user information and data
100
+
101
+ **Usage Example:**
102
+ ```typescript
103
+ // Create a new server user
104
+ const newServerUser = {
105
+ firstName: 'John',
106
+ lastName: 'Admin',
107
+ emailAddress: 'john.admin@company.com',
108
+ roleName: 'Server Administrator',
109
+ isActive: true,
110
+ password: 'SecureServerPassword123!', // Only required for new users
111
+ permissions: [
112
+ 'server.read',
113
+ 'server.write',
114
+ 'instance.create',
115
+ 'instance.manage'
116
+ ],
117
+ instanceAccess: [
118
+ {
119
+ instanceGUID: 'instance-guid-1',
120
+ instanceName: 'Production Instance',
121
+ role: 'Administrator'
122
+ },
123
+ {
124
+ instanceGUID: 'instance-guid-2',
125
+ instanceName: 'Staging Instance',
126
+ role: 'Editor'
127
+ }
128
+ ]
129
+ };
130
+
131
+ const savedServerUser = await apiClient.serverUserMethods.saveServerUser(
132
+ newServerUser,
133
+ guid
134
+ );
135
+ console.log('Server user created with ID:', savedServerUser.userID);
136
+
137
+ // Update existing server user
138
+ const existingServerUser = await apiClient.serverUserMethods.getServerUser(123, guid);
139
+ existingServerUser.firstName = 'Jane';
140
+ existingServerUser.roleName = 'Instance Manager';
141
+ existingServerUser.isActive = true;
142
+
143
+ // Add new instance access
144
+ existingServerUser.instanceAccess.push({
145
+ instanceGUID: 'new-instance-guid',
146
+ instanceName: 'New Instance',
147
+ role: 'Publisher'
148
+ });
149
+
150
+ const updatedServerUser = await apiClient.serverUserMethods.saveServerUser(
151
+ existingServerUser,
152
+ guid
153
+ );
154
+ console.log('Server user updated:', updatedServerUser.emailAddress);
155
+
156
+ // Grant server-level permissions
157
+ const grantServerPermissions = async (userID, permissions) => {
158
+ const user = await apiClient.serverUserMethods.getServerUser(userID, guid);
159
+ user.permissions = [...new Set([...user.permissions, ...permissions])];
160
+ return await apiClient.serverUserMethods.saveServerUser(user, guid);
161
+ };
162
+
163
+ // Promote user to server administrator
164
+ const promoteToServerAdmin = async (userID) => {
165
+ const user = await apiClient.serverUserMethods.getServerUser(userID, guid);
166
+ user.roleName = 'Server Administrator';
167
+ user.permissions = [
168
+ 'server.read',
169
+ 'server.write',
170
+ 'instance.create',
171
+ 'instance.manage',
172
+ 'user.manage'
173
+ ];
174
+ return await apiClient.serverUserMethods.saveServerUser(user, guid);
175
+ };
176
+
177
+ // Manage instance access
178
+ const updateInstanceAccess = async (userID, instanceGUID, role) => {
179
+ const user = await apiClient.serverUserMethods.getServerUser(userID, guid);
180
+
181
+ // Find existing access or create new
182
+ const existingAccess = user.instanceAccess.find(
183
+ access => access.instanceGUID === instanceGUID
184
+ );
185
+
186
+ if (existingAccess) {
187
+ existingAccess.role = role;
188
+ } else {
189
+ user.instanceAccess.push({
190
+ instanceGUID: instanceGUID,
191
+ instanceName: 'Instance Name', // You'd get this from instance details
192
+ role: role
193
+ });
194
+ }
195
+
196
+ return await apiClient.serverUserMethods.saveServerUser(user, guid);
197
+ };
198
+ ```
199
+
200
+ **Server User Structure:**
201
+ ```typescript
202
+ interface ServerUser {
203
+ userID?: number; // Auto-generated for new users
204
+ firstName: string; // User's first name (required)
205
+ lastName: string; // User's last name (required)
206
+ emailAddress: string; // User's email address (required, unique)
207
+ roleName: string; // Server-level role (required)
208
+ isActive: boolean; // Whether the account is active
209
+ password?: string; // Required for new users only
210
+ permissions: string[]; // Array of server-level permissions
211
+ instanceAccess: InstanceAccess[]; // Array of instance access configurations
212
+ lastLoginDate?: string; // Auto-generated
213
+ createdDate?: string; // Auto-generated
214
+ }
215
+
216
+ interface InstanceAccess {
217
+ instanceGUID: string; // Instance identifier
218
+ instanceName: string; // Human-readable instance name
219
+ role: string; // Role within that instance
220
+ }
221
+ ```
222
+
223
+ **Server-Level Permissions:**
224
+ Common server permissions include:
225
+ - `server.read`: Read server configuration
226
+ - `server.write`: Modify server configuration
227
+ - `instance.create`: Create new instances
228
+ - `instance.manage`: Manage existing instances
229
+ - `user.manage`: Manage server users
230
+ - `system.admin`: Full system administration
231
+
232
+ **Instance Access Configuration:**
233
+ - Each server user can have access to multiple instances
234
+ - Access is granted with specific roles per instance
235
+ - Instance access can be managed independently of server-level permissions
236
+ - Common instance roles: Administrator, Editor, Publisher, Contributor
237
+
238
+ **Validation Rules:**
239
+ - `emailAddress` must be unique across all server users
240
+ - `password` is required for new users (not needed for updates)
241
+ - `firstName` and `lastName` are required
242
+ - `roleName` must be a valid server-level role
243
+ - `instanceAccess` entries must reference valid instances
244
+
245
+ **Error Handling:**
246
+ - Throws `Exception` when validation fails (duplicate email, invalid role, etc.)
247
+ - Throws `Exception` when save operation fails
248
+ - Throws `Exception` when insufficient permissions to create/update server users
249
+ - Throws `Exception` when instance access references invalid instances
250
+
251
+ **Security Considerations:**
252
+ - Server user operations require the highest level of permissions
253
+ - Changes to server users can affect multiple instances
254
+ - Always validate instance access before granting permissions
255
+ - Consider using role-based access control for server users
256
+ - Monitor server user activity for security compliance
257
+
258
+ **Best Practices:**
259
+ - Use principle of least privilege when assigning server permissions
260
+ - Regularly review and audit server user accounts
261
+ - Implement strong password policies for server users
262
+ - Deactivate unused server user accounts
263
+ - Log all server user management activities
264
+
265
+ ---
266
+
267
+ ## Navigation
268
+ - [← Back to Main Documentation](../README.md)
269
+ - [Authentication & Setup](./auth.md)
270
+ - [Multi-Instance Operations](./multi-instance-operations.md)
271
+ - [AssetMethods](./asset-methods.md)
272
+ - [BatchMethods](./batch-methods.md)
273
+ - [ContainerMethods](./container-methods.md)
274
+ - [ContentMethods](./content-methods.md)
275
+ - [InstanceMethods](./instance-methods.md)
276
+ - [InstanceUserMethods](./instance-user-methods.md)
277
+ - [ModelMethods](./model-methods.md)
278
+ - [PageMethods](./page-methods.md)
279
+ - **ServerUserMethods** *(current)*
280
280
  - [WebhookMethods](./webhook-methods.md)