@agility/management-sdk 0.1.35 → 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 (261) 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 +119 -48
  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/dist/util/queryString.d.ts +8 -0
  17. package/dist/util/queryString.js +27 -0
  18. package/docs/asset-methods.md +381 -381
  19. package/docs/auth-component.md +360 -360
  20. package/docs/auth.md +593 -593
  21. package/docs/batch-methods.md +243 -243
  22. package/docs/cicd.md +606 -606
  23. package/docs/container-methods.md +267 -267
  24. package/docs/content-methods.md +491 -422
  25. package/docs/instance-methods.md +104 -104
  26. package/docs/instance-user-methods.md +230 -230
  27. package/docs/model-methods.md +433 -433
  28. package/docs/multi-instance-operations.md +191 -191
  29. package/docs/page-methods.md +737 -670
  30. package/docs/server-user-methods.md +279 -279
  31. package/docs/webhook-methods.md +451 -451
  32. package/license.txt +20 -20
  33. package/package.json +40 -40
  34. package/tsconfig.json +14 -14
  35. package/.cursor/api-coverage.md +0 -217
  36. package/.cursor/api-documentation-manifest.md +0 -275
  37. package/.cursor/api-functions-analysis.md +0 -111
  38. package/.cursor/breakout-manifest.md +0 -278
  39. package/.cursor/docs-final-check.md +0 -269
  40. package/.cursor/github-actions-improvements.md +0 -76
  41. package/.cursor/hardening.md +0 -271
  42. package/.cursor/linting-fix.md +0 -160
  43. package/.cursor/manifest.md +0 -243
  44. package/.cursor/mocks.md +0 -100
  45. package/.cursor/test-coverage.md +0 -841
  46. package/.env +0 -92
  47. package/coverage/base.css +0 -224
  48. package/coverage/block-navigation.js +0 -87
  49. package/coverage/coverage-summary.json +0 -43
  50. package/coverage/favicon.png +0 -0
  51. package/coverage/index.html +0 -161
  52. package/coverage/lcov-report/base.css +0 -224
  53. package/coverage/lcov-report/block-navigation.js +0 -87
  54. package/coverage/lcov-report/favicon.png +0 -0
  55. package/coverage/lcov-report/index.html +0 -161
  56. package/coverage/lcov-report/prettify.css +0 -1
  57. package/coverage/lcov-report/prettify.js +0 -2
  58. package/coverage/lcov-report/sort-arrow-sprite.png +0 -0
  59. package/coverage/lcov-report/sorter.js +0 -210
  60. package/coverage/lcov-report/src/apiClient.ts.html +0 -199
  61. package/coverage/lcov-report/src/apiMethods/assetMethods.ts.html +0 -682
  62. package/coverage/lcov-report/src/apiMethods/batchMethods.ts.html +0 -736
  63. package/coverage/lcov-report/src/apiMethods/clientInstance.ts.html +0 -403
  64. package/coverage/lcov-report/src/apiMethods/containerMethods.ts.html +0 -460
  65. package/coverage/lcov-report/src/apiMethods/contentMethods.ts.html +0 -1183
  66. package/coverage/lcov-report/src/apiMethods/index.html +0 -266
  67. package/coverage/lcov-report/src/apiMethods/instanceMethods.ts.html +0 -160
  68. package/coverage/lcov-report/src/apiMethods/instanceUserMethods.ts.html +0 -268
  69. package/coverage/lcov-report/src/apiMethods/modelMethods.ts.html +0 -352
  70. package/coverage/lcov-report/src/apiMethods/pageMethods.ts.html +0 -1276
  71. package/coverage/lcov-report/src/apiMethods/serverUserMethods.ts.html +0 -196
  72. package/coverage/lcov-report/src/apiMethods/webhookMethods.ts.html +0 -271
  73. package/coverage/lcov-report/src/enums/batchItemType.ts.html +0 -106
  74. package/coverage/lcov-report/src/enums/batchOperationType.ts.html +0 -142
  75. package/coverage/lcov-report/src/enums/batchState..ts.html +0 -106
  76. package/coverage/lcov-report/src/enums/index.html +0 -161
  77. package/coverage/lcov-report/src/enums/workflowOperationType.ts.html +0 -175
  78. package/coverage/lcov-report/src/index.html +0 -116
  79. package/coverage/lcov-report/src/models/assetContainer.ts.html +0 -106
  80. package/coverage/lcov-report/src/models/assetGalleries.ts.html +0 -103
  81. package/coverage/lcov-report/src/models/assetMediaGrouping.ts.html +0 -136
  82. package/coverage/lcov-report/src/models/assetMediaGroupingMetaData.ts.html +0 -97
  83. package/coverage/lcov-report/src/models/batch.ts.html +0 -178
  84. package/coverage/lcov-report/src/models/batchItem.ts.html +0 -127
  85. package/coverage/lcov-report/src/models/container.ts.html +0 -232
  86. package/coverage/lcov-report/src/models/contentDefinitionTypeID.ts.html +0 -142
  87. package/coverage/lcov-report/src/models/contentItem.ts.html +0 -202
  88. package/coverage/lcov-report/src/models/contentSectionDefaultModule.ts.html +0 -106
  89. package/coverage/lcov-report/src/models/contentSectionDefinition.ts.html +0 -196
  90. package/coverage/lcov-report/src/models/contentViewColumn.ts.html +0 -109
  91. package/coverage/lcov-report/src/models/exception.ts.html +0 -109
  92. package/coverage/lcov-report/src/models/index.html +0 -476
  93. package/coverage/lcov-report/src/models/instanceRole.ts.html +0 -106
  94. package/coverage/lcov-report/src/models/instanceUser.ts.html +0 -130
  95. package/coverage/lcov-report/src/models/locales.ts.html +0 -100
  96. package/coverage/lcov-report/src/models/media.ts.html +0 -178
  97. package/coverage/lcov-report/src/models/model.ts.html +0 -172
  98. package/coverage/lcov-report/src/models/notification.ts.html +0 -124
  99. package/coverage/lcov-report/src/models/options.ts.html +0 -109
  100. package/coverage/lcov-report/src/models/pageItem.ts.html +0 -268
  101. package/coverage/lcov-report/src/models/pageModel.ts.html +0 -130
  102. package/coverage/lcov-report/src/models/sharedModule.ts.html +0 -106
  103. package/coverage/lcov-report/src/models/sitemap.ts.html +0 -148
  104. package/coverage/lcov-report/src/models/websiteUser.ts.html +0 -157
  105. package/coverage/lcov.info +0 -1459
  106. package/coverage/prettify.css +0 -1
  107. package/coverage/prettify.js +0 -2
  108. package/coverage/sort-arrow-sprite.png +0 -0
  109. package/coverage/sorter.js +0 -210
  110. package/coverage/src/apiClient.ts.html +0 -199
  111. package/coverage/src/apiMethods/assetMethods.ts.html +0 -682
  112. package/coverage/src/apiMethods/batchMethods.ts.html +0 -736
  113. package/coverage/src/apiMethods/clientInstance.ts.html +0 -403
  114. package/coverage/src/apiMethods/containerMethods.ts.html +0 -460
  115. package/coverage/src/apiMethods/contentMethods.ts.html +0 -1183
  116. package/coverage/src/apiMethods/index.html +0 -266
  117. package/coverage/src/apiMethods/instanceMethods.ts.html +0 -160
  118. package/coverage/src/apiMethods/instanceUserMethods.ts.html +0 -268
  119. package/coverage/src/apiMethods/modelMethods.ts.html +0 -352
  120. package/coverage/src/apiMethods/pageMethods.ts.html +0 -1276
  121. package/coverage/src/apiMethods/serverUserMethods.ts.html +0 -196
  122. package/coverage/src/apiMethods/webhookMethods.ts.html +0 -271
  123. package/coverage/src/enums/batchItemType.ts.html +0 -106
  124. package/coverage/src/enums/batchOperationType.ts.html +0 -142
  125. package/coverage/src/enums/batchState..ts.html +0 -106
  126. package/coverage/src/enums/index.html +0 -161
  127. package/coverage/src/enums/workflowOperationType.ts.html +0 -175
  128. package/coverage/src/index.html +0 -116
  129. package/coverage/src/models/assetContainer.ts.html +0 -106
  130. package/coverage/src/models/assetGalleries.ts.html +0 -103
  131. package/coverage/src/models/assetMediaGrouping.ts.html +0 -136
  132. package/coverage/src/models/assetMediaGroupingMetaData.ts.html +0 -97
  133. package/coverage/src/models/batch.ts.html +0 -178
  134. package/coverage/src/models/batchItem.ts.html +0 -127
  135. package/coverage/src/models/container.ts.html +0 -232
  136. package/coverage/src/models/contentDefinitionTypeID.ts.html +0 -142
  137. package/coverage/src/models/contentItem.ts.html +0 -202
  138. package/coverage/src/models/contentSectionDefaultModule.ts.html +0 -106
  139. package/coverage/src/models/contentSectionDefinition.ts.html +0 -196
  140. package/coverage/src/models/contentViewColumn.ts.html +0 -109
  141. package/coverage/src/models/exception.ts.html +0 -109
  142. package/coverage/src/models/index.html +0 -476
  143. package/coverage/src/models/instanceRole.ts.html +0 -106
  144. package/coverage/src/models/instanceUser.ts.html +0 -130
  145. package/coverage/src/models/locales.ts.html +0 -100
  146. package/coverage/src/models/media.ts.html +0 -178
  147. package/coverage/src/models/model.ts.html +0 -172
  148. package/coverage/src/models/notification.ts.html +0 -124
  149. package/coverage/src/models/options.ts.html +0 -109
  150. package/coverage/src/models/pageItem.ts.html +0 -268
  151. package/coverage/src/models/pageModel.ts.html +0 -130
  152. package/coverage/src/models/sharedModule.ts.html +0 -106
  153. package/coverage/src/models/sitemap.ts.html +0 -148
  154. package/coverage/src/models/websiteUser.ts.html +0 -157
  155. package/dist/.tsbuildinfo +0 -1
  156. package/dist/apiClient.d.ts.map +0 -1
  157. package/dist/apiClient.js.map +0 -1
  158. package/dist/apiMethods/assetMethods.d.ts.map +0 -1
  159. package/dist/apiMethods/assetMethods.js.map +0 -1
  160. package/dist/apiMethods/batchMethods.d.ts.map +0 -1
  161. package/dist/apiMethods/batchMethods.js.map +0 -1
  162. package/dist/apiMethods/clientInstance.d.ts.map +0 -1
  163. package/dist/apiMethods/clientInstance.js.map +0 -1
  164. package/dist/apiMethods/containerMethods.d.ts.map +0 -1
  165. package/dist/apiMethods/containerMethods.js.map +0 -1
  166. package/dist/apiMethods/contentMethods.d.ts.map +0 -1
  167. package/dist/apiMethods/contentMethods.js.map +0 -1
  168. package/dist/apiMethods/instanceMethods.d.ts.map +0 -1
  169. package/dist/apiMethods/instanceMethods.js.map +0 -1
  170. package/dist/apiMethods/instanceUserMethods.d.ts.map +0 -1
  171. package/dist/apiMethods/instanceUserMethods.js.map +0 -1
  172. package/dist/apiMethods/modelMethods.d.ts.map +0 -1
  173. package/dist/apiMethods/modelMethods.js.map +0 -1
  174. package/dist/apiMethods/pageMethods.d.ts.map +0 -1
  175. package/dist/apiMethods/pageMethods.js.map +0 -1
  176. package/dist/apiMethods/serverUserMethods.d.ts.map +0 -1
  177. package/dist/apiMethods/serverUserMethods.js.map +0 -1
  178. package/dist/apiMethods/webhookMethods.d.ts.map +0 -1
  179. package/dist/apiMethods/webhookMethods.js.map +0 -1
  180. package/dist/enums/assetGroupingType.d.ts.map +0 -1
  181. package/dist/enums/assetGroupingType.js.map +0 -1
  182. package/dist/enums/batchItemType.d.ts.map +0 -1
  183. package/dist/enums/batchItemType.js.map +0 -1
  184. package/dist/enums/batchOperationType.d.ts.map +0 -1
  185. package/dist/enums/batchOperationType.js.map +0 -1
  186. package/dist/enums/batchState..d.ts.map +0 -1
  187. package/dist/enums/batchState..js.map +0 -1
  188. package/dist/enums/pageItemTemplateType.d.ts.map +0 -1
  189. package/dist/enums/pageItemTemplateType.js.map +0 -1
  190. package/dist/enums/workflowOperationType.d.ts.map +0 -1
  191. package/dist/enums/workflowOperationType.js.map +0 -1
  192. package/dist/index.d.ts.map +0 -1
  193. package/dist/index.js.map +0 -1
  194. package/dist/models/assetContainer.d.ts.map +0 -1
  195. package/dist/models/assetContainer.js.map +0 -1
  196. package/dist/models/assetGalleries.d.ts.map +0 -1
  197. package/dist/models/assetGalleries.js.map +0 -1
  198. package/dist/models/assetMediaGrouping.d.ts.map +0 -1
  199. package/dist/models/assetMediaGrouping.js.map +0 -1
  200. package/dist/models/assetMediaGroupingMetaData.d.ts.map +0 -1
  201. package/dist/models/assetMediaGroupingMetaData.js.map +0 -1
  202. package/dist/models/batch.d.ts.map +0 -1
  203. package/dist/models/batch.js.map +0 -1
  204. package/dist/models/batchItem.d.ts.map +0 -1
  205. package/dist/models/batchItem.js.map +0 -1
  206. package/dist/models/batchTypes.d.ts.map +0 -1
  207. package/dist/models/batchTypes.js.map +0 -1
  208. package/dist/models/container.d.ts.map +0 -1
  209. package/dist/models/container.js.map +0 -1
  210. package/dist/models/contentDefinitionTypeID.d.ts.map +0 -1
  211. package/dist/models/contentDefinitionTypeID.js.map +0 -1
  212. package/dist/models/contentItem.d.ts.map +0 -1
  213. package/dist/models/contentItem.js.map +0 -1
  214. package/dist/models/contentItemHistory.d.ts.map +0 -1
  215. package/dist/models/contentItemHistory.js.map +0 -1
  216. package/dist/models/contentListFilterModel.d.ts.map +0 -1
  217. package/dist/models/contentListFilterModel.js.map +0 -1
  218. package/dist/models/contentSectionDefaultModule.d.ts.map +0 -1
  219. package/dist/models/contentSectionDefaultModule.js.map +0 -1
  220. package/dist/models/contentSectionDefinition.d.ts.map +0 -1
  221. package/dist/models/contentSectionDefinition.js.map +0 -1
  222. package/dist/models/contentViewColumn.d.ts.map +0 -1
  223. package/dist/models/contentViewColumn.js.map +0 -1
  224. package/dist/models/exception.d.ts.map +0 -1
  225. package/dist/models/exception.js.map +0 -1
  226. package/dist/models/instanceRole.d.ts.map +0 -1
  227. package/dist/models/instanceRole.js.map +0 -1
  228. package/dist/models/instanceUser.d.ts.map +0 -1
  229. package/dist/models/instanceUser.js.map +0 -1
  230. package/dist/models/itemComments.d.ts.map +0 -1
  231. package/dist/models/itemComments.js.map +0 -1
  232. package/dist/models/listParams.d.ts.map +0 -1
  233. package/dist/models/listParams.js.map +0 -1
  234. package/dist/models/locales.d.ts.map +0 -1
  235. package/dist/models/locales.js.map +0 -1
  236. package/dist/models/media.d.ts.map +0 -1
  237. package/dist/models/media.js.map +0 -1
  238. package/dist/models/model.d.ts.map +0 -1
  239. package/dist/models/model.js.map +0 -1
  240. package/dist/models/notification.d.ts.map +0 -1
  241. package/dist/models/notification.js.map +0 -1
  242. package/dist/models/options.d.ts.map +0 -1
  243. package/dist/models/options.js.map +0 -1
  244. package/dist/models/pageHistory.d.ts.map +0 -1
  245. package/dist/models/pageHistory.js.map +0 -1
  246. package/dist/models/pageItem.d.ts.map +0 -1
  247. package/dist/models/pageItem.js.map +0 -1
  248. package/dist/models/pageModel.d.ts.map +0 -1
  249. package/dist/models/pageModel.js.map +0 -1
  250. package/dist/models/serverUser.d.ts.map +0 -1
  251. package/dist/models/serverUser.js.map +0 -1
  252. package/dist/models/sharedModule.d.ts.map +0 -1
  253. package/dist/models/sharedModule.js.map +0 -1
  254. package/dist/models/sitemap.d.ts.map +0 -1
  255. package/dist/models/sitemap.js.map +0 -1
  256. package/dist/models/webhook.d.ts.map +0 -1
  257. package/dist/models/webhook.js.map +0 -1
  258. package/dist/models/websiteListing.d.ts.map +0 -1
  259. package/dist/models/websiteListing.js.map +0 -1
  260. package/dist/models/websiteUser.d.ts.map +0 -1
  261. 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)