@agility/management-sdk 0.1.36 → 0.1.37

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 (259) hide show
  1. package/README.md +371 -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/pageMethods.d.ts +12 -0
  9. package/dist/apiMethods/pageMethods.js +88 -34
  10. package/dist/enums/contentViewType.d.ts +6 -0
  11. package/dist/enums/contentViewType.js +10 -0
  12. package/dist/index.d.ts +2 -0
  13. package/dist/index.js +2 -0
  14. package/dist/models/pagedResult.d.ts +4 -0
  15. package/dist/models/pagedResult.js +2 -0
  16. package/docs/asset-methods.md +381 -381
  17. package/docs/auth-component.md +360 -360
  18. package/docs/auth.md +593 -593
  19. package/docs/batch-methods.md +243 -243
  20. package/docs/cicd.md +606 -606
  21. package/docs/container-methods.md +267 -267
  22. package/docs/content-methods.md +491 -422
  23. package/docs/instance-methods.md +104 -104
  24. package/docs/instance-user-methods.md +230 -230
  25. package/docs/model-methods.md +433 -433
  26. package/docs/multi-instance-operations.md +191 -191
  27. package/docs/page-methods.md +737 -670
  28. package/docs/server-user-methods.md +279 -279
  29. package/docs/webhook-methods.md +451 -451
  30. package/license.txt +20 -20
  31. package/package.json +40 -40
  32. package/tsconfig.json +14 -14
  33. package/.cursor/api-coverage.md +0 -217
  34. package/.cursor/api-documentation-manifest.md +0 -275
  35. package/.cursor/api-functions-analysis.md +0 -111
  36. package/.cursor/breakout-manifest.md +0 -278
  37. package/.cursor/docs-final-check.md +0 -269
  38. package/.cursor/github-actions-improvements.md +0 -76
  39. package/.cursor/hardening.md +0 -271
  40. package/.cursor/linting-fix.md +0 -160
  41. package/.cursor/manifest.md +0 -243
  42. package/.cursor/mocks.md +0 -100
  43. package/.cursor/test-coverage.md +0 -841
  44. package/.env +0 -92
  45. package/coverage/base.css +0 -224
  46. package/coverage/block-navigation.js +0 -87
  47. package/coverage/coverage-summary.json +0 -43
  48. package/coverage/favicon.png +0 -0
  49. package/coverage/index.html +0 -161
  50. package/coverage/lcov-report/base.css +0 -224
  51. package/coverage/lcov-report/block-navigation.js +0 -87
  52. package/coverage/lcov-report/favicon.png +0 -0
  53. package/coverage/lcov-report/index.html +0 -161
  54. package/coverage/lcov-report/prettify.css +0 -1
  55. package/coverage/lcov-report/prettify.js +0 -2
  56. package/coverage/lcov-report/sort-arrow-sprite.png +0 -0
  57. package/coverage/lcov-report/sorter.js +0 -210
  58. package/coverage/lcov-report/src/apiClient.ts.html +0 -199
  59. package/coverage/lcov-report/src/apiMethods/assetMethods.ts.html +0 -682
  60. package/coverage/lcov-report/src/apiMethods/batchMethods.ts.html +0 -736
  61. package/coverage/lcov-report/src/apiMethods/clientInstance.ts.html +0 -403
  62. package/coverage/lcov-report/src/apiMethods/containerMethods.ts.html +0 -460
  63. package/coverage/lcov-report/src/apiMethods/contentMethods.ts.html +0 -1183
  64. package/coverage/lcov-report/src/apiMethods/index.html +0 -266
  65. package/coverage/lcov-report/src/apiMethods/instanceMethods.ts.html +0 -160
  66. package/coverage/lcov-report/src/apiMethods/instanceUserMethods.ts.html +0 -268
  67. package/coverage/lcov-report/src/apiMethods/modelMethods.ts.html +0 -352
  68. package/coverage/lcov-report/src/apiMethods/pageMethods.ts.html +0 -1276
  69. package/coverage/lcov-report/src/apiMethods/serverUserMethods.ts.html +0 -196
  70. package/coverage/lcov-report/src/apiMethods/webhookMethods.ts.html +0 -271
  71. package/coverage/lcov-report/src/enums/batchItemType.ts.html +0 -106
  72. package/coverage/lcov-report/src/enums/batchOperationType.ts.html +0 -142
  73. package/coverage/lcov-report/src/enums/batchState..ts.html +0 -106
  74. package/coverage/lcov-report/src/enums/index.html +0 -161
  75. package/coverage/lcov-report/src/enums/workflowOperationType.ts.html +0 -175
  76. package/coverage/lcov-report/src/index.html +0 -116
  77. package/coverage/lcov-report/src/models/assetContainer.ts.html +0 -106
  78. package/coverage/lcov-report/src/models/assetGalleries.ts.html +0 -103
  79. package/coverage/lcov-report/src/models/assetMediaGrouping.ts.html +0 -136
  80. package/coverage/lcov-report/src/models/assetMediaGroupingMetaData.ts.html +0 -97
  81. package/coverage/lcov-report/src/models/batch.ts.html +0 -178
  82. package/coverage/lcov-report/src/models/batchItem.ts.html +0 -127
  83. package/coverage/lcov-report/src/models/container.ts.html +0 -232
  84. package/coverage/lcov-report/src/models/contentDefinitionTypeID.ts.html +0 -142
  85. package/coverage/lcov-report/src/models/contentItem.ts.html +0 -202
  86. package/coverage/lcov-report/src/models/contentSectionDefaultModule.ts.html +0 -106
  87. package/coverage/lcov-report/src/models/contentSectionDefinition.ts.html +0 -196
  88. package/coverage/lcov-report/src/models/contentViewColumn.ts.html +0 -109
  89. package/coverage/lcov-report/src/models/exception.ts.html +0 -109
  90. package/coverage/lcov-report/src/models/index.html +0 -476
  91. package/coverage/lcov-report/src/models/instanceRole.ts.html +0 -106
  92. package/coverage/lcov-report/src/models/instanceUser.ts.html +0 -130
  93. package/coverage/lcov-report/src/models/locales.ts.html +0 -100
  94. package/coverage/lcov-report/src/models/media.ts.html +0 -178
  95. package/coverage/lcov-report/src/models/model.ts.html +0 -172
  96. package/coverage/lcov-report/src/models/notification.ts.html +0 -124
  97. package/coverage/lcov-report/src/models/options.ts.html +0 -109
  98. package/coverage/lcov-report/src/models/pageItem.ts.html +0 -268
  99. package/coverage/lcov-report/src/models/pageModel.ts.html +0 -130
  100. package/coverage/lcov-report/src/models/sharedModule.ts.html +0 -106
  101. package/coverage/lcov-report/src/models/sitemap.ts.html +0 -148
  102. package/coverage/lcov-report/src/models/websiteUser.ts.html +0 -157
  103. package/coverage/lcov.info +0 -1459
  104. package/coverage/prettify.css +0 -1
  105. package/coverage/prettify.js +0 -2
  106. package/coverage/sort-arrow-sprite.png +0 -0
  107. package/coverage/sorter.js +0 -210
  108. package/coverage/src/apiClient.ts.html +0 -199
  109. package/coverage/src/apiMethods/assetMethods.ts.html +0 -682
  110. package/coverage/src/apiMethods/batchMethods.ts.html +0 -736
  111. package/coverage/src/apiMethods/clientInstance.ts.html +0 -403
  112. package/coverage/src/apiMethods/containerMethods.ts.html +0 -460
  113. package/coverage/src/apiMethods/contentMethods.ts.html +0 -1183
  114. package/coverage/src/apiMethods/index.html +0 -266
  115. package/coverage/src/apiMethods/instanceMethods.ts.html +0 -160
  116. package/coverage/src/apiMethods/instanceUserMethods.ts.html +0 -268
  117. package/coverage/src/apiMethods/modelMethods.ts.html +0 -352
  118. package/coverage/src/apiMethods/pageMethods.ts.html +0 -1276
  119. package/coverage/src/apiMethods/serverUserMethods.ts.html +0 -196
  120. package/coverage/src/apiMethods/webhookMethods.ts.html +0 -271
  121. package/coverage/src/enums/batchItemType.ts.html +0 -106
  122. package/coverage/src/enums/batchOperationType.ts.html +0 -142
  123. package/coverage/src/enums/batchState..ts.html +0 -106
  124. package/coverage/src/enums/index.html +0 -161
  125. package/coverage/src/enums/workflowOperationType.ts.html +0 -175
  126. package/coverage/src/index.html +0 -116
  127. package/coverage/src/models/assetContainer.ts.html +0 -106
  128. package/coverage/src/models/assetGalleries.ts.html +0 -103
  129. package/coverage/src/models/assetMediaGrouping.ts.html +0 -136
  130. package/coverage/src/models/assetMediaGroupingMetaData.ts.html +0 -97
  131. package/coverage/src/models/batch.ts.html +0 -178
  132. package/coverage/src/models/batchItem.ts.html +0 -127
  133. package/coverage/src/models/container.ts.html +0 -232
  134. package/coverage/src/models/contentDefinitionTypeID.ts.html +0 -142
  135. package/coverage/src/models/contentItem.ts.html +0 -202
  136. package/coverage/src/models/contentSectionDefaultModule.ts.html +0 -106
  137. package/coverage/src/models/contentSectionDefinition.ts.html +0 -196
  138. package/coverage/src/models/contentViewColumn.ts.html +0 -109
  139. package/coverage/src/models/exception.ts.html +0 -109
  140. package/coverage/src/models/index.html +0 -476
  141. package/coverage/src/models/instanceRole.ts.html +0 -106
  142. package/coverage/src/models/instanceUser.ts.html +0 -130
  143. package/coverage/src/models/locales.ts.html +0 -100
  144. package/coverage/src/models/media.ts.html +0 -178
  145. package/coverage/src/models/model.ts.html +0 -172
  146. package/coverage/src/models/notification.ts.html +0 -124
  147. package/coverage/src/models/options.ts.html +0 -109
  148. package/coverage/src/models/pageItem.ts.html +0 -268
  149. package/coverage/src/models/pageModel.ts.html +0 -130
  150. package/coverage/src/models/sharedModule.ts.html +0 -106
  151. package/coverage/src/models/sitemap.ts.html +0 -148
  152. package/coverage/src/models/websiteUser.ts.html +0 -157
  153. package/dist/.tsbuildinfo +0 -1
  154. package/dist/apiClient.d.ts.map +0 -1
  155. package/dist/apiClient.js.map +0 -1
  156. package/dist/apiMethods/assetMethods.d.ts.map +0 -1
  157. package/dist/apiMethods/assetMethods.js.map +0 -1
  158. package/dist/apiMethods/batchMethods.d.ts.map +0 -1
  159. package/dist/apiMethods/batchMethods.js.map +0 -1
  160. package/dist/apiMethods/clientInstance.d.ts.map +0 -1
  161. package/dist/apiMethods/clientInstance.js.map +0 -1
  162. package/dist/apiMethods/containerMethods.d.ts.map +0 -1
  163. package/dist/apiMethods/containerMethods.js.map +0 -1
  164. package/dist/apiMethods/contentMethods.d.ts.map +0 -1
  165. package/dist/apiMethods/contentMethods.js.map +0 -1
  166. package/dist/apiMethods/instanceMethods.d.ts.map +0 -1
  167. package/dist/apiMethods/instanceMethods.js.map +0 -1
  168. package/dist/apiMethods/instanceUserMethods.d.ts.map +0 -1
  169. package/dist/apiMethods/instanceUserMethods.js.map +0 -1
  170. package/dist/apiMethods/modelMethods.d.ts.map +0 -1
  171. package/dist/apiMethods/modelMethods.js.map +0 -1
  172. package/dist/apiMethods/pageMethods.d.ts.map +0 -1
  173. package/dist/apiMethods/pageMethods.js.map +0 -1
  174. package/dist/apiMethods/serverUserMethods.d.ts.map +0 -1
  175. package/dist/apiMethods/serverUserMethods.js.map +0 -1
  176. package/dist/apiMethods/webhookMethods.d.ts.map +0 -1
  177. package/dist/apiMethods/webhookMethods.js.map +0 -1
  178. package/dist/enums/assetGroupingType.d.ts.map +0 -1
  179. package/dist/enums/assetGroupingType.js.map +0 -1
  180. package/dist/enums/batchItemType.d.ts.map +0 -1
  181. package/dist/enums/batchItemType.js.map +0 -1
  182. package/dist/enums/batchOperationType.d.ts.map +0 -1
  183. package/dist/enums/batchOperationType.js.map +0 -1
  184. package/dist/enums/batchState..d.ts.map +0 -1
  185. package/dist/enums/batchState..js.map +0 -1
  186. package/dist/enums/pageItemTemplateType.d.ts.map +0 -1
  187. package/dist/enums/pageItemTemplateType.js.map +0 -1
  188. package/dist/enums/workflowOperationType.d.ts.map +0 -1
  189. package/dist/enums/workflowOperationType.js.map +0 -1
  190. package/dist/index.d.ts.map +0 -1
  191. package/dist/index.js.map +0 -1
  192. package/dist/models/assetContainer.d.ts.map +0 -1
  193. package/dist/models/assetContainer.js.map +0 -1
  194. package/dist/models/assetGalleries.d.ts.map +0 -1
  195. package/dist/models/assetGalleries.js.map +0 -1
  196. package/dist/models/assetMediaGrouping.d.ts.map +0 -1
  197. package/dist/models/assetMediaGrouping.js.map +0 -1
  198. package/dist/models/assetMediaGroupingMetaData.d.ts.map +0 -1
  199. package/dist/models/assetMediaGroupingMetaData.js.map +0 -1
  200. package/dist/models/batch.d.ts.map +0 -1
  201. package/dist/models/batch.js.map +0 -1
  202. package/dist/models/batchItem.d.ts.map +0 -1
  203. package/dist/models/batchItem.js.map +0 -1
  204. package/dist/models/batchTypes.d.ts.map +0 -1
  205. package/dist/models/batchTypes.js.map +0 -1
  206. package/dist/models/container.d.ts.map +0 -1
  207. package/dist/models/container.js.map +0 -1
  208. package/dist/models/contentDefinitionTypeID.d.ts.map +0 -1
  209. package/dist/models/contentDefinitionTypeID.js.map +0 -1
  210. package/dist/models/contentItem.d.ts.map +0 -1
  211. package/dist/models/contentItem.js.map +0 -1
  212. package/dist/models/contentItemHistory.d.ts.map +0 -1
  213. package/dist/models/contentItemHistory.js.map +0 -1
  214. package/dist/models/contentListFilterModel.d.ts.map +0 -1
  215. package/dist/models/contentListFilterModel.js.map +0 -1
  216. package/dist/models/contentSectionDefaultModule.d.ts.map +0 -1
  217. package/dist/models/contentSectionDefaultModule.js.map +0 -1
  218. package/dist/models/contentSectionDefinition.d.ts.map +0 -1
  219. package/dist/models/contentSectionDefinition.js.map +0 -1
  220. package/dist/models/contentViewColumn.d.ts.map +0 -1
  221. package/dist/models/contentViewColumn.js.map +0 -1
  222. package/dist/models/exception.d.ts.map +0 -1
  223. package/dist/models/exception.js.map +0 -1
  224. package/dist/models/instanceRole.d.ts.map +0 -1
  225. package/dist/models/instanceRole.js.map +0 -1
  226. package/dist/models/instanceUser.d.ts.map +0 -1
  227. package/dist/models/instanceUser.js.map +0 -1
  228. package/dist/models/itemComments.d.ts.map +0 -1
  229. package/dist/models/itemComments.js.map +0 -1
  230. package/dist/models/listParams.d.ts.map +0 -1
  231. package/dist/models/listParams.js.map +0 -1
  232. package/dist/models/locales.d.ts.map +0 -1
  233. package/dist/models/locales.js.map +0 -1
  234. package/dist/models/media.d.ts.map +0 -1
  235. package/dist/models/media.js.map +0 -1
  236. package/dist/models/model.d.ts.map +0 -1
  237. package/dist/models/model.js.map +0 -1
  238. package/dist/models/notification.d.ts.map +0 -1
  239. package/dist/models/notification.js.map +0 -1
  240. package/dist/models/options.d.ts.map +0 -1
  241. package/dist/models/options.js.map +0 -1
  242. package/dist/models/pageHistory.d.ts.map +0 -1
  243. package/dist/models/pageHistory.js.map +0 -1
  244. package/dist/models/pageItem.d.ts.map +0 -1
  245. package/dist/models/pageItem.js.map +0 -1
  246. package/dist/models/pageModel.d.ts.map +0 -1
  247. package/dist/models/pageModel.js.map +0 -1
  248. package/dist/models/serverUser.d.ts.map +0 -1
  249. package/dist/models/serverUser.js.map +0 -1
  250. package/dist/models/sharedModule.d.ts.map +0 -1
  251. package/dist/models/sharedModule.js.map +0 -1
  252. package/dist/models/sitemap.d.ts.map +0 -1
  253. package/dist/models/sitemap.js.map +0 -1
  254. package/dist/models/webhook.d.ts.map +0 -1
  255. package/dist/models/webhook.js.map +0 -1
  256. package/dist/models/websiteListing.d.ts.map +0 -1
  257. package/dist/models/websiteListing.js.map +0 -1
  258. package/dist/models/websiteUser.d.ts.map +0 -1
  259. package/dist/models/websiteUser.js.map +0 -1
@@ -1,105 +1,105 @@
1
- # InstanceMethods API Documentation
2
-
3
- The `InstanceMethods` class provides instance-level operations for retrieving configuration and settings.
4
-
5
- ## Function List
6
-
7
- | Function | Description |
8
- |----------|-------------|
9
- | [getLocales](#getlocales) | Retrieves all available locales for the instance |
10
-
11
- ---
12
-
13
- ## getLocales
14
-
15
- Retrieves all available locales configured for the current Agility CMS instance.
16
-
17
- ### Parameters
18
-
19
- | Parameter | Type | Required | Description |
20
- |-----------|------|----------|-------------|
21
- | guid | string | Yes | The website GUID |
22
-
23
- ### Returns
24
-
25
- `Promise<Locales[]>` - Array of locale objects with language configuration
26
-
27
- ### Usage Example
28
-
29
- ```typescript
30
- const locales = await client.instanceMethods.getLocales('your-guid');
31
-
32
- // Display available locales
33
- locales.forEach(locale => {
34
- console.log(`${locale.name} (${locale.code})`);
35
- });
36
-
37
- // Find default locale
38
- const defaultLocale = locales.find(locale => locale.isDefault);
39
- console.log('Default locale:', defaultLocale.code);
40
-
41
- // Get all enabled locales
42
- const enabledLocales = locales.filter(locale => locale.isEnabled);
43
- console.log(`${enabledLocales.length} locales are enabled`);
44
- ```
45
-
46
- ### Locale Object Structure
47
-
48
- ```typescript
49
- interface Locales {
50
- code: string; // Language code (e.g., 'en-us', 'fr-ca')
51
- name: string; // Display name (e.g., 'English (United States)')
52
- isDefault: boolean; // Whether this is the default locale
53
- isEnabled: boolean; // Whether this locale is enabled
54
- // Additional locale properties may be available
55
- }
56
- ```
57
-
58
- ### Common Use Cases
59
-
60
- ```typescript
61
- // Get locale codes for content operations
62
- const locales = await client.instanceMethods.getLocales(guid);
63
- const localeCodes = locales.map(locale => locale.code);
64
-
65
- // Use with content operations
66
- for (const localeCode of localeCodes) {
67
- const content = await client.contentMethods.getContentItem(123, guid, localeCode);
68
- console.log(`Content in ${localeCode}:`, content.fields.title);
69
- }
70
-
71
- // Check if a specific locale is available
72
- const hasSpanish = locales.some(locale => locale.code === 'es-es');
73
- if (hasSpanish) {
74
- console.log('Spanish locale is available');
75
- }
76
- ```
77
-
78
- ---
79
-
80
- ## Error Handling
81
-
82
- The method throws `Exception` objects on failure:
83
-
84
- ```typescript
85
- try {
86
- const locales = await client.instanceMethods.getLocales('your-guid');
87
- } catch (error) {
88
- console.error('Failed to retrieve locales:', error.message);
89
- }
90
- ```
91
-
92
- ---
93
-
94
- ## Navigation
95
- - [← Back to Main Documentation](../README.md)
96
- - [Authentication & Setup](./auth.md)
97
- - [AssetMethods](./asset-methods.md)
98
- - [BatchMethods](./batch-methods.md)
99
- - [ContainerMethods](./container-methods.md)
100
- - [ContentMethods](./content-methods.md)
101
- - [InstanceUserMethods](./instance-user-methods.md)
102
- - [ModelMethods](./model-methods.md)
103
- - [PageMethods](./page-methods.md)
104
- - [ServerUserMethods](./server-user-methods.md)
1
+ # InstanceMethods API Documentation
2
+
3
+ The `InstanceMethods` class provides instance-level operations for retrieving configuration and settings.
4
+
5
+ ## Function List
6
+
7
+ | Function | Description |
8
+ |----------|-------------|
9
+ | [getLocales](#getlocales) | Retrieves all available locales for the instance |
10
+
11
+ ---
12
+
13
+ ## getLocales
14
+
15
+ Retrieves all available locales configured for the current Agility CMS instance.
16
+
17
+ ### Parameters
18
+
19
+ | Parameter | Type | Required | Description |
20
+ |-----------|------|----------|-------------|
21
+ | guid | string | Yes | The website GUID |
22
+
23
+ ### Returns
24
+
25
+ `Promise<Locales[]>` - Array of locale objects with language configuration
26
+
27
+ ### Usage Example
28
+
29
+ ```typescript
30
+ const locales = await client.instanceMethods.getLocales('your-guid');
31
+
32
+ // Display available locales
33
+ locales.forEach(locale => {
34
+ console.log(`${locale.name} (${locale.code})`);
35
+ });
36
+
37
+ // Find default locale
38
+ const defaultLocale = locales.find(locale => locale.isDefault);
39
+ console.log('Default locale:', defaultLocale.code);
40
+
41
+ // Get all enabled locales
42
+ const enabledLocales = locales.filter(locale => locale.isEnabled);
43
+ console.log(`${enabledLocales.length} locales are enabled`);
44
+ ```
45
+
46
+ ### Locale Object Structure
47
+
48
+ ```typescript
49
+ interface Locales {
50
+ code: string; // Language code (e.g., 'en-us', 'fr-ca')
51
+ name: string; // Display name (e.g., 'English (United States)')
52
+ isDefault: boolean; // Whether this is the default locale
53
+ isEnabled: boolean; // Whether this locale is enabled
54
+ // Additional locale properties may be available
55
+ }
56
+ ```
57
+
58
+ ### Common Use Cases
59
+
60
+ ```typescript
61
+ // Get locale codes for content operations
62
+ const locales = await client.instanceMethods.getLocales(guid);
63
+ const localeCodes = locales.map(locale => locale.code);
64
+
65
+ // Use with content operations
66
+ for (const localeCode of localeCodes) {
67
+ const content = await client.contentMethods.getContentItem(123, guid, localeCode);
68
+ console.log(`Content in ${localeCode}:`, content.fields.title);
69
+ }
70
+
71
+ // Check if a specific locale is available
72
+ const hasSpanish = locales.some(locale => locale.code === 'es-es');
73
+ if (hasSpanish) {
74
+ console.log('Spanish locale is available');
75
+ }
76
+ ```
77
+
78
+ ---
79
+
80
+ ## Error Handling
81
+
82
+ The method throws `Exception` objects on failure:
83
+
84
+ ```typescript
85
+ try {
86
+ const locales = await client.instanceMethods.getLocales('your-guid');
87
+ } catch (error) {
88
+ console.error('Failed to retrieve locales:', error.message);
89
+ }
90
+ ```
91
+
92
+ ---
93
+
94
+ ## Navigation
95
+ - [← Back to Main Documentation](../README.md)
96
+ - [Authentication & Setup](./auth.md)
97
+ - [AssetMethods](./asset-methods.md)
98
+ - [BatchMethods](./batch-methods.md)
99
+ - [ContainerMethods](./container-methods.md)
100
+ - [ContentMethods](./content-methods.md)
101
+ - [InstanceUserMethods](./instance-user-methods.md)
102
+ - [ModelMethods](./model-methods.md)
103
+ - [PageMethods](./page-methods.md)
104
+ - [ServerUserMethods](./server-user-methods.md)
105
105
  - [WebhookMethods](./webhook-methods.md)
@@ -1,231 +1,231 @@
1
- # Agility CMS & Management API TypeScript SDK
2
-
3
- ## InstanceUserMethods
4
-
5
- This class provides comprehensive user management operations for Agility CMS instances. These methods allow you to manage user accounts, roles, and permissions within your instance.
6
-
7
- **Important Notes:**
8
- - Instance user methods typically require administrative privileges
9
- - These operations affect user accounts across the entire instance
10
- - Role assignments control user access to different areas of the CMS
11
- - User management changes may affect website permissions and access
12
-
13
- ### Function List
14
- - [getUsers](#getusers) - Retrieves all instance users
15
- - [saveUser](#saveuser) - Creates or updates an instance user
16
- - [deleteUser](#deleteuser) - Deletes an instance user by ID
17
-
18
- ---
19
-
20
- ### getUsers
21
-
22
- Retrieves all instance users for the current website.
23
-
24
- | Parameter | Type | Required | Description |
25
- |-----------|------|----------|-------------|
26
- | `guid` | `string` | Yes | Current website GUID |
27
-
28
- **Returns:** `WebsiteUser` - Complete list of users with roles and permissions
29
-
30
- **Usage Example:**
31
- ```typescript
32
- const users = await apiClient.instanceUserMethods.getUsers(guid);
33
- console.log(`User: ${user.firstName} ${user.lastName}`);
34
- console.log(`Email: ${user.emailAddress}`);
35
- console.log(`Role: ${user.roleName}`);
36
- console.log(`Status: ${user.isActive ? 'Active' : 'Inactive'}`);
37
- console.log(`Last Login: ${user.lastLoginDate}`);
38
-
39
- // Check user permissions
40
- if (user.permissions && user.permissions.length > 0) {
41
- console.log('User permissions:');
42
- user.permissions.forEach(permission => {
43
- console.log(` - ${permission}`);
44
- });
45
- } else {
46
- console.log('User has no specific permissions assigned');
47
- }
48
-
49
- // Check if user is an administrator
50
- const isAdmin = user.roleName === 'Administrator' ||
51
- user.roleName === 'Instance Administrator';
52
- console.log(`Is Administrator: ${isAdmin}`);
53
- ```
54
-
55
- **Response Properties:**
56
- The `InstanceUser` object includes:
57
- - `userID`: Unique identifier for the user
58
- - `firstName`: User's first name
59
- - `lastName`: User's last name
60
- - `emailAddress`: User's email address
61
- - `roleName`: The user's role within the instance
62
- - `isActive`: Whether the user account is active
63
- - `lastLoginDate`: Date of the user's last login
64
- - `createdDate`: Date the user account was created
65
- - `permissions`: Array of specific permissions assigned to the user
66
-
67
- **Error Handling:**
68
- - Throws `Exception` when user not found
69
- - Throws `Exception` when insufficient permissions to view user details
70
-
71
- ### saveUser
72
-
73
- Creates a new instance user or updates an existing one.
74
-
75
- | Parameter | Type | Required | Description |
76
- |-----------|------|----------|-------------|
77
- | `emailAddress` | `string` | Yes | User's email address |
78
- | `roles` | `InstanceRole[]` | Yes | Array of roles to assign to user |
79
- | `guid` | `string` | Yes | Current website GUID |
80
- | `firstName` | `string` | No | User's first name |
81
- | `lastName` | `string` | No | User's last name |
82
-
83
- **Returns:** `InstanceUser` - Saved user object with updated metadata
84
-
85
- **Usage Example:**
86
- ```typescript
87
- // Create a new user
88
- const roles = [
89
- { roleID: 1, roleName: 'Editor' },
90
- { roleID: 2, roleName: 'Contributor' }
91
- ];
92
-
93
- const savedUser = await apiClient.instanceUserMethods.saveUser(
94
- 'john.doe@company.com',
95
- roles,
96
- guid,
97
- 'John',
98
- 'Doe'
99
- );
100
- console.log('User created with ID:', savedUser.userID);
101
-
102
- // Update existing user
103
- const existingUser = await apiClient.instanceUserMethods.getInstanceUser(123, guid);
104
- existingUser.firstName = 'Jane';
105
- existingUser.roleName = 'Administrator';
106
- existingUser.isActive = false; // Deactivate user
107
-
108
- const updatedUser = await apiClient.instanceUserMethods.saveInstanceUser(existingUser, guid);
109
- console.log('User updated:', updatedUser.emailAddress);
110
-
111
- // Bulk user role update
112
- const updateUserRole = async (userID, newRole) => {
113
- const user = await apiClient.instanceUserMethods.getInstanceUser(userID, guid);
114
- user.roleName = newRole;
115
- return await apiClient.instanceUserMethods.saveInstanceUser(user, guid);
116
- };
117
-
118
- // Promote user to administrator
119
- await updateUserRole(123, 'Administrator');
120
- ```
121
-
122
- **User Roles:**
123
- Common role names include:
124
- - `Administrator`: Full access to all instance features
125
- - `Instance Administrator`: Instance-level administrative access
126
- - `Editor`: Content creation and editing permissions
127
- - `Publisher`: Content publishing permissions
128
- - `Contributor`: Limited content creation permissions
129
- - `Viewer`: Read-only access
130
-
131
- **Validation Rules:**
132
- - `emailAddress` must be unique within the instance
133
- - `password` is required for new users (not needed for updates)
134
- - `firstName` and `lastName` are required
135
- - `roleName` must be a valid role within the instance
136
-
137
- **Error Handling:**
138
- - Throws `Exception` when validation fails (duplicate email, invalid role, etc.)
139
- - Throws `Exception` when save operation fails
140
- - Throws `Exception` when insufficient permissions to create/update users
141
-
142
- ### deleteUser
143
-
144
- Deletes an instance user by their unique ID.
145
-
146
- | Parameter | Type | Required | Description |
147
- |-----------|------|----------|-------------|
148
- | `userId` | `number` | Yes | The user ID to delete |
149
- | `guid` | `string` | Yes | Current website GUID |
150
-
151
- **Returns:** `string` - Confirmation message of successful deletion
152
-
153
- **Usage Example:**
154
- ```typescript
155
- try {
156
- const result = await apiClient.instanceUserMethods.deleteUser(123, guid);
157
- console.log(result); // "User deleted successfully"
158
- } catch (error) {
159
- if (error.message.includes('owns content')) {
160
- console.log('Cannot delete user: user owns content items');
161
- // Handle by reassigning content or archiving user instead
162
- } else if (error.message.includes('last administrator')) {
163
- console.log('Cannot delete user: last administrator in instance');
164
- } else {
165
- console.error('Failed to delete user:', error.message);
166
- }
167
- }
168
-
169
- // Safe user deletion with checks
170
- const safeDeleteUser = async (userID) => {
171
- try {
172
- // Get user details first
173
- const user = await apiClient.instanceUserMethods.getInstanceUser(userID, guid);
174
- console.log(`Attempting to delete user: ${user.emailAddress}`);
175
-
176
- // Check if user is active
177
- if (user.isActive) {
178
- console.log('Warning: Deleting active user');
179
- }
180
-
181
- // Perform deletion
182
- const result = await apiClient.instanceUserMethods.deleteInstanceUser(userID, guid);
183
- console.log('User deleted successfully');
184
- return result;
185
- } catch (error) {
186
- console.error('Failed to delete user:', error.message);
187
- throw error;
188
- }
189
- };
190
-
191
- // Alternative: Deactivate instead of delete
192
- const deactivateUser = async (userID) => {
193
- const user = await apiClient.instanceUserMethods.getInstanceUser(userID, guid);
194
- user.isActive = false;
195
- return await apiClient.instanceUserMethods.saveInstanceUser(user, guid);
196
- };
197
- ```
198
-
199
- **Deletion Restrictions:**
200
- - Cannot delete a user who owns content items (reassign content first)
201
- - Cannot delete the last administrator in the instance
202
- - Cannot delete your own user account
203
- - Cannot delete users with active sessions (in some cases)
204
-
205
- **Best Practices:**
206
- - Consider deactivating users instead of deleting them to preserve audit trails
207
- - Reassign content ownership before deleting users
208
- - Ensure at least one administrator remains in the instance
209
- - Log user deletions for security auditing
210
-
211
- **Error Handling:**
212
- - Throws `Exception` when user not found
213
- - Throws `Exception` when user cannot be deleted (owns content, last admin, etc.)
214
- - Throws `Exception` when insufficient permissions to delete users
215
-
216
- ---
217
-
218
- ## Navigation
219
- - [← Back to Main Documentation](../README.md)
220
- - [Authentication & Setup](./auth.md)
221
- - [Multi-Instance Operations](./multi-instance-operations.md)
222
- - [AssetMethods](./asset-methods.md)
223
- - [BatchMethods](./batch-methods.md)
224
- - [ContainerMethods](./container-methods.md)
225
- - [ContentMethods](./content-methods.md)
226
- - [InstanceMethods](./instance-methods.md)
227
- - **InstanceUserMethods** *(current)*
228
- - [ModelMethods](./model-methods.md)
229
- - [PageMethods](./page-methods.md)
230
- - [ServerUserMethods](./server-user-methods.md)
1
+ # Agility CMS & Management API TypeScript SDK
2
+
3
+ ## InstanceUserMethods
4
+
5
+ This class provides comprehensive user management operations for Agility CMS instances. These methods allow you to manage user accounts, roles, and permissions within your instance.
6
+
7
+ **Important Notes:**
8
+ - Instance user methods typically require administrative privileges
9
+ - These operations affect user accounts across the entire instance
10
+ - Role assignments control user access to different areas of the CMS
11
+ - User management changes may affect website permissions and access
12
+
13
+ ### Function List
14
+ - [getUsers](#getusers) - Retrieves all instance users
15
+ - [saveUser](#saveuser) - Creates or updates an instance user
16
+ - [deleteUser](#deleteuser) - Deletes an instance user by ID
17
+
18
+ ---
19
+
20
+ ### getUsers
21
+
22
+ Retrieves all instance users for the current website.
23
+
24
+ | Parameter | Type | Required | Description |
25
+ |-----------|------|----------|-------------|
26
+ | `guid` | `string` | Yes | Current website GUID |
27
+
28
+ **Returns:** `WebsiteUser` - Complete list of users with roles and permissions
29
+
30
+ **Usage Example:**
31
+ ```typescript
32
+ const users = await apiClient.instanceUserMethods.getUsers(guid);
33
+ console.log(`User: ${user.firstName} ${user.lastName}`);
34
+ console.log(`Email: ${user.emailAddress}`);
35
+ console.log(`Role: ${user.roleName}`);
36
+ console.log(`Status: ${user.isActive ? 'Active' : 'Inactive'}`);
37
+ console.log(`Last Login: ${user.lastLoginDate}`);
38
+
39
+ // Check user permissions
40
+ if (user.permissions && user.permissions.length > 0) {
41
+ console.log('User permissions:');
42
+ user.permissions.forEach(permission => {
43
+ console.log(` - ${permission}`);
44
+ });
45
+ } else {
46
+ console.log('User has no specific permissions assigned');
47
+ }
48
+
49
+ // Check if user is an administrator
50
+ const isAdmin = user.roleName === 'Administrator' ||
51
+ user.roleName === 'Instance Administrator';
52
+ console.log(`Is Administrator: ${isAdmin}`);
53
+ ```
54
+
55
+ **Response Properties:**
56
+ The `InstanceUser` object includes:
57
+ - `userID`: Unique identifier for the user
58
+ - `firstName`: User's first name
59
+ - `lastName`: User's last name
60
+ - `emailAddress`: User's email address
61
+ - `roleName`: The user's role within the instance
62
+ - `isActive`: Whether the user account is active
63
+ - `lastLoginDate`: Date of the user's last login
64
+ - `createdDate`: Date the user account was created
65
+ - `permissions`: Array of specific permissions assigned to the user
66
+
67
+ **Error Handling:**
68
+ - Throws `Exception` when user not found
69
+ - Throws `Exception` when insufficient permissions to view user details
70
+
71
+ ### saveUser
72
+
73
+ Creates a new instance user or updates an existing one.
74
+
75
+ | Parameter | Type | Required | Description |
76
+ |-----------|------|----------|-------------|
77
+ | `emailAddress` | `string` | Yes | User's email address |
78
+ | `roles` | `InstanceRole[]` | Yes | Array of roles to assign to user |
79
+ | `guid` | `string` | Yes | Current website GUID |
80
+ | `firstName` | `string` | No | User's first name |
81
+ | `lastName` | `string` | No | User's last name |
82
+
83
+ **Returns:** `InstanceUser` - Saved user object with updated metadata
84
+
85
+ **Usage Example:**
86
+ ```typescript
87
+ // Create a new user
88
+ const roles = [
89
+ { roleID: 1, roleName: 'Editor' },
90
+ { roleID: 2, roleName: 'Contributor' }
91
+ ];
92
+
93
+ const savedUser = await apiClient.instanceUserMethods.saveUser(
94
+ 'john.doe@company.com',
95
+ roles,
96
+ guid,
97
+ 'John',
98
+ 'Doe'
99
+ );
100
+ console.log('User created with ID:', savedUser.userID);
101
+
102
+ // Update existing user
103
+ const existingUser = await apiClient.instanceUserMethods.getInstanceUser(123, guid);
104
+ existingUser.firstName = 'Jane';
105
+ existingUser.roleName = 'Administrator';
106
+ existingUser.isActive = false; // Deactivate user
107
+
108
+ const updatedUser = await apiClient.instanceUserMethods.saveInstanceUser(existingUser, guid);
109
+ console.log('User updated:', updatedUser.emailAddress);
110
+
111
+ // Bulk user role update
112
+ const updateUserRole = async (userID, newRole) => {
113
+ const user = await apiClient.instanceUserMethods.getInstanceUser(userID, guid);
114
+ user.roleName = newRole;
115
+ return await apiClient.instanceUserMethods.saveInstanceUser(user, guid);
116
+ };
117
+
118
+ // Promote user to administrator
119
+ await updateUserRole(123, 'Administrator');
120
+ ```
121
+
122
+ **User Roles:**
123
+ Common role names include:
124
+ - `Administrator`: Full access to all instance features
125
+ - `Instance Administrator`: Instance-level administrative access
126
+ - `Editor`: Content creation and editing permissions
127
+ - `Publisher`: Content publishing permissions
128
+ - `Contributor`: Limited content creation permissions
129
+ - `Viewer`: Read-only access
130
+
131
+ **Validation Rules:**
132
+ - `emailAddress` must be unique within the instance
133
+ - `password` is required for new users (not needed for updates)
134
+ - `firstName` and `lastName` are required
135
+ - `roleName` must be a valid role within the instance
136
+
137
+ **Error Handling:**
138
+ - Throws `Exception` when validation fails (duplicate email, invalid role, etc.)
139
+ - Throws `Exception` when save operation fails
140
+ - Throws `Exception` when insufficient permissions to create/update users
141
+
142
+ ### deleteUser
143
+
144
+ Deletes an instance user by their unique ID.
145
+
146
+ | Parameter | Type | Required | Description |
147
+ |-----------|------|----------|-------------|
148
+ | `userId` | `number` | Yes | The user ID to delete |
149
+ | `guid` | `string` | Yes | Current website GUID |
150
+
151
+ **Returns:** `string` - Confirmation message of successful deletion
152
+
153
+ **Usage Example:**
154
+ ```typescript
155
+ try {
156
+ const result = await apiClient.instanceUserMethods.deleteUser(123, guid);
157
+ console.log(result); // "User deleted successfully"
158
+ } catch (error) {
159
+ if (error.message.includes('owns content')) {
160
+ console.log('Cannot delete user: user owns content items');
161
+ // Handle by reassigning content or archiving user instead
162
+ } else if (error.message.includes('last administrator')) {
163
+ console.log('Cannot delete user: last administrator in instance');
164
+ } else {
165
+ console.error('Failed to delete user:', error.message);
166
+ }
167
+ }
168
+
169
+ // Safe user deletion with checks
170
+ const safeDeleteUser = async (userID) => {
171
+ try {
172
+ // Get user details first
173
+ const user = await apiClient.instanceUserMethods.getInstanceUser(userID, guid);
174
+ console.log(`Attempting to delete user: ${user.emailAddress}`);
175
+
176
+ // Check if user is active
177
+ if (user.isActive) {
178
+ console.log('Warning: Deleting active user');
179
+ }
180
+
181
+ // Perform deletion
182
+ const result = await apiClient.instanceUserMethods.deleteInstanceUser(userID, guid);
183
+ console.log('User deleted successfully');
184
+ return result;
185
+ } catch (error) {
186
+ console.error('Failed to delete user:', error.message);
187
+ throw error;
188
+ }
189
+ };
190
+
191
+ // Alternative: Deactivate instead of delete
192
+ const deactivateUser = async (userID) => {
193
+ const user = await apiClient.instanceUserMethods.getInstanceUser(userID, guid);
194
+ user.isActive = false;
195
+ return await apiClient.instanceUserMethods.saveInstanceUser(user, guid);
196
+ };
197
+ ```
198
+
199
+ **Deletion Restrictions:**
200
+ - Cannot delete a user who owns content items (reassign content first)
201
+ - Cannot delete the last administrator in the instance
202
+ - Cannot delete your own user account
203
+ - Cannot delete users with active sessions (in some cases)
204
+
205
+ **Best Practices:**
206
+ - Consider deactivating users instead of deleting them to preserve audit trails
207
+ - Reassign content ownership before deleting users
208
+ - Ensure at least one administrator remains in the instance
209
+ - Log user deletions for security auditing
210
+
211
+ **Error Handling:**
212
+ - Throws `Exception` when user not found
213
+ - Throws `Exception` when user cannot be deleted (owns content, last admin, etc.)
214
+ - Throws `Exception` when insufficient permissions to delete users
215
+
216
+ ---
217
+
218
+ ## Navigation
219
+ - [← Back to Main Documentation](../README.md)
220
+ - [Authentication & Setup](./auth.md)
221
+ - [Multi-Instance Operations](./multi-instance-operations.md)
222
+ - [AssetMethods](./asset-methods.md)
223
+ - [BatchMethods](./batch-methods.md)
224
+ - [ContainerMethods](./container-methods.md)
225
+ - [ContentMethods](./content-methods.md)
226
+ - [InstanceMethods](./instance-methods.md)
227
+ - **InstanceUserMethods** *(current)*
228
+ - [ModelMethods](./model-methods.md)
229
+ - [PageMethods](./page-methods.md)
230
+ - [ServerUserMethods](./server-user-methods.md)
231
231
  - [WebhookMethods](./webhook-methods.md)