isc-transforms-mcp 1.0.0
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.
- package/JSONS/authoritative-operation-catalog.json +280 -0
- package/JSONS/sailpoint.isc.transforms.accountAttribute.schema.json +164 -0
- package/JSONS/sailpoint.isc.transforms.base64Decode.schema.json +37 -0
- package/JSONS/sailpoint.isc.transforms.base64Encode.schema.json +32 -0
- package/JSONS/sailpoint.isc.transforms.concat.schema.json +109 -0
- package/JSONS/sailpoint.isc.transforms.conditional.schema.json +161 -0
- package/JSONS/sailpoint.isc.transforms.dateCompare.schema.json +159 -0
- package/JSONS/sailpoint.isc.transforms.dateFormat.schema.json +101 -0
- package/JSONS/sailpoint.isc.transforms.dateMath.schema.json +119 -0
- package/JSONS/sailpoint.isc.transforms.decomposeDiacriticalMarks.schema.json +92 -0
- package/JSONS/sailpoint.isc.transforms.displayName.schema.json +42 -0
- package/JSONS/sailpoint.isc.transforms.e164phone.schema.json +107 -0
- package/JSONS/sailpoint.isc.transforms.firstValid.schema.json +129 -0
- package/JSONS/sailpoint.isc.transforms.generateRandomString.schema.json +94 -0
- package/JSONS/sailpoint.isc.transforms.getEndOfString.schema.json +118 -0
- package/JSONS/sailpoint.isc.transforms.getReferenceIdentityAttribute.schema.json +79 -0
- package/JSONS/sailpoint.isc.transforms.identityAttribute.schema.json +104 -0
- package/JSONS/sailpoint.isc.transforms.index.schema.json +48 -0
- package/JSONS/sailpoint.isc.transforms.indexOf.schema.json +90 -0
- package/JSONS/sailpoint.isc.transforms.iso3166.schema.json +103 -0
- package/JSONS/sailpoint.isc.transforms.join.schema.json +113 -0
- package/JSONS/sailpoint.isc.transforms.lastIndexOf.schema.json +90 -0
- package/JSONS/sailpoint.isc.transforms.leftPad.schema.json +96 -0
- package/JSONS/sailpoint.isc.transforms.lookup.schema.json +100 -0
- package/JSONS/sailpoint.isc.transforms.lower.schema.json +80 -0
- package/JSONS/sailpoint.isc.transforms.normalizeNames.schema.json +79 -0
- package/JSONS/sailpoint.isc.transforms.randomAlphaNumeric.schema.json +53 -0
- package/JSONS/sailpoint.isc.transforms.randomNumeric.schema.json +53 -0
- package/JSONS/sailpoint.isc.transforms.reference.schema.json +90 -0
- package/JSONS/sailpoint.isc.transforms.replace.schema.json +96 -0
- package/JSONS/sailpoint.isc.transforms.replaceAll.schema.json +96 -0
- package/JSONS/sailpoint.isc.transforms.rfc5646.schema.json +79 -0
- package/JSONS/sailpoint.isc.transforms.rightPad.schema.json +96 -0
- package/JSONS/sailpoint.isc.transforms.rule.schema.json +106 -0
- package/JSONS/sailpoint.isc.transforms.split.schema.json +103 -0
- package/JSONS/sailpoint.isc.transforms.static.schema.json +131 -0
- package/JSONS/sailpoint.isc.transforms.substring.schema.json +167 -0
- package/JSONS/sailpoint.isc.transforms.trim.schema.json +93 -0
- package/JSONS/sailpoint.isc.transforms.upper.schema.json +80 -0
- package/JSONS/sailpoint.isc.transforms.usernameGenerator.schema.json +106 -0
- package/JSONS/sailpoint.isc.transforms.uuid.schema.json +32 -0
- package/LICENSE +21 -0
- package/README.md +221 -0
- package/bin/isc-transforms-mcp.mjs +3 -0
- package/dist/allowlist.js +37 -0
- package/dist/config.js +67 -0
- package/dist/http/errors.js +19 -0
- package/dist/http/iscAuth.js +45 -0
- package/dist/http/iscClient.js +73 -0
- package/dist/index.js +613 -0
- package/dist/logger.js +9 -0
- package/dist/redact.js +28 -0
- package/dist/transforms/catalog.js +566 -0
- package/dist/transforms/explain.js +266 -0
- package/dist/transforms/generate.js +551 -0
- package/dist/transforms/index.js +9 -0
- package/dist/transforms/lint.js +839 -0
- package/dist/transforms/normalize.js +96 -0
- package/dist/transforms/patterns.js +295 -0
- package/dist/transforms/testcases.js +350 -0
- package/dist/transforms/validate.js +250 -0
- package/dist/util/diff.js +23 -0
- package/package.json +76 -0
|
@@ -0,0 +1,280 @@
|
|
|
1
|
+
{
|
|
2
|
+
"operations": [
|
|
3
|
+
{
|
|
4
|
+
"type": "accountAttribute",
|
|
5
|
+
"docUrl": "https://developer.sailpoint.com/docs/extensibility/transforms/operations/account-attribute/",
|
|
6
|
+
"summary": "Look up an account for a particular source on an identity.",
|
|
7
|
+
"status": "supported",
|
|
8
|
+
"label": "Account Attribute"
|
|
9
|
+
},
|
|
10
|
+
{
|
|
11
|
+
"type": "base64Decode",
|
|
12
|
+
"docUrl": "https://developer.sailpoint.com/docs/extensibility/transforms/operations/base64-decode/",
|
|
13
|
+
"summary": "Render base64 data in its original binary format.",
|
|
14
|
+
"status": "supported",
|
|
15
|
+
"label": "Base64 Decode"
|
|
16
|
+
},
|
|
17
|
+
{
|
|
18
|
+
"type": "base64Encode",
|
|
19
|
+
"docUrl": "https://developer.sailpoint.com/docs/extensibility/transforms/operations/base64-encode/",
|
|
20
|
+
"summary": "Encode data with a Base64-based text encoding scheme.",
|
|
21
|
+
"status": "supported",
|
|
22
|
+
"label": "Base64 Encode"
|
|
23
|
+
},
|
|
24
|
+
{
|
|
25
|
+
"type": "concat",
|
|
26
|
+
"docUrl": "https://developer.sailpoint.com/docs/extensibility/transforms/operations/concatenation/",
|
|
27
|
+
"summary": "Join two or more string values into a combined output.",
|
|
28
|
+
"status": "supported",
|
|
29
|
+
"label": "Concatenation"
|
|
30
|
+
},
|
|
31
|
+
{
|
|
32
|
+
"type": "conditional",
|
|
33
|
+
"docUrl": "https://developer.sailpoint.com/docs/extensibility/transforms/operations/conditional/",
|
|
34
|
+
"summary": "Output different values depending on simple conditional logic.",
|
|
35
|
+
"status": "supported",
|
|
36
|
+
"label": "Conditional"
|
|
37
|
+
},
|
|
38
|
+
{
|
|
39
|
+
"type": "dateCompare",
|
|
40
|
+
"docUrl": "https://developer.sailpoint.com/docs/extensibility/transforms/operations/date-compare/",
|
|
41
|
+
"summary": "Compare two dates and return a calculated value.",
|
|
42
|
+
"status": "supported",
|
|
43
|
+
"label": "Date Compare"
|
|
44
|
+
},
|
|
45
|
+
{
|
|
46
|
+
"type": "dateFormat",
|
|
47
|
+
"docUrl": "https://developer.sailpoint.com/docs/extensibility/transforms/operations/date-format/",
|
|
48
|
+
"summary": "Convert datetime strings from one format to another.",
|
|
49
|
+
"status": "supported",
|
|
50
|
+
"label": "Date Format"
|
|
51
|
+
},
|
|
52
|
+
{
|
|
53
|
+
"type": "dateMath",
|
|
54
|
+
"docUrl": "https://developer.sailpoint.com/docs/extensibility/transforms/operations/date-math/",
|
|
55
|
+
"summary": "Add, subtract, and round components of a timestamp's incoming value.",
|
|
56
|
+
"status": "supported",
|
|
57
|
+
"label": "Date Math"
|
|
58
|
+
},
|
|
59
|
+
{
|
|
60
|
+
"type": "decomposeDiacriticalMarks",
|
|
61
|
+
"docUrl": "https://developer.sailpoint.com/docs/extensibility/transforms/operations/decompose-diacritical-marks/",
|
|
62
|
+
"summary": "Clean or standardize symbols used within language.",
|
|
63
|
+
"status": "supported",
|
|
64
|
+
"label": "Decompose Diacritical Marks"
|
|
65
|
+
},
|
|
66
|
+
{
|
|
67
|
+
"type": "displayName",
|
|
68
|
+
"docUrl": "https://developer.sailpoint.com/docs/extensibility/transforms/operations/display-name/",
|
|
69
|
+
"summary": "Use Preferred Name over Given Name to create an identity’s Display Name.",
|
|
70
|
+
"status": "supported",
|
|
71
|
+
"label": "Display Name"
|
|
72
|
+
},
|
|
73
|
+
{
|
|
74
|
+
"type": "e164phone",
|
|
75
|
+
"docUrl": "https://developer.sailpoint.com/docs/extensibility/transforms/operations/e164-phone/",
|
|
76
|
+
"summary": "Convert a phone number string into an E.164-compatible number.",
|
|
77
|
+
"status": "supported",
|
|
78
|
+
"label": "E.164 Phone"
|
|
79
|
+
},
|
|
80
|
+
{
|
|
81
|
+
"type": "firstValid",
|
|
82
|
+
"docUrl": "https://developer.sailpoint.com/docs/extensibility/transforms/operations/first-valid/",
|
|
83
|
+
"summary": "Return the first piece of data that is not null.",
|
|
84
|
+
"status": "supported",
|
|
85
|
+
"label": "First Valid"
|
|
86
|
+
},
|
|
87
|
+
{
|
|
88
|
+
"type": "rule",
|
|
89
|
+
"docUrl": "https://developer.sailpoint.com/docs/extensibility/transforms/operations/generate-random-string/",
|
|
90
|
+
"summary": "Generate a random string of any length.",
|
|
91
|
+
"status": "supported",
|
|
92
|
+
"label": "Generate Random String",
|
|
93
|
+
"operation": "generateRandomString"
|
|
94
|
+
},
|
|
95
|
+
{
|
|
96
|
+
"type": "rule",
|
|
97
|
+
"docUrl": "https://developer.sailpoint.com/docs/extensibility/transforms/operations/get-end-of-string/",
|
|
98
|
+
"summary": "Get the rightmost N characters of a string.",
|
|
99
|
+
"status": "supported",
|
|
100
|
+
"label": "Get End of String",
|
|
101
|
+
"operation": "getEndOfString"
|
|
102
|
+
},
|
|
103
|
+
{
|
|
104
|
+
"type": "rule",
|
|
105
|
+
"docUrl": "https://developer.sailpoint.com/docs/extensibility/transforms/operations/get-reference-identity-attribute/",
|
|
106
|
+
"summary": "Get another user's identity attribute.",
|
|
107
|
+
"status": "supported",
|
|
108
|
+
"label": "Get Reference Identity Attribute",
|
|
109
|
+
"operation": "getReferenceIdentityAttribute"
|
|
110
|
+
},
|
|
111
|
+
{
|
|
112
|
+
"type": "identityAttribute",
|
|
113
|
+
"docUrl": "https://developer.sailpoint.com/docs/extensibility/transforms/operations/identity-attribute/",
|
|
114
|
+
"summary": "Get a user's identity attribute's value.",
|
|
115
|
+
"status": "supported",
|
|
116
|
+
"label": "Identity Attribute"
|
|
117
|
+
},
|
|
118
|
+
{
|
|
119
|
+
"type": "indexOf",
|
|
120
|
+
"docUrl": "https://developer.sailpoint.com/docs/extensibility/transforms/operations/index-of/",
|
|
121
|
+
"summary": "Get the location of a specific substring within a value.",
|
|
122
|
+
"status": "supported",
|
|
123
|
+
"label": "Index Of"
|
|
124
|
+
},
|
|
125
|
+
{
|
|
126
|
+
"type": "iso3166",
|
|
127
|
+
"docUrl": "https://developer.sailpoint.com/docs/extensibility/transforms/operations/iso-3166/",
|
|
128
|
+
"summary": "Convert a string into an ISO 3166 country code value.",
|
|
129
|
+
"status": "supported",
|
|
130
|
+
"label": "ISO3166"
|
|
131
|
+
},
|
|
132
|
+
{
|
|
133
|
+
"type": "join",
|
|
134
|
+
"docUrl": "https://developer.sailpoint.com/docs/extensibility/transforms/operations/join/",
|
|
135
|
+
"summary": "Join two or more string values into a combined output with a defined separator.",
|
|
136
|
+
"status": "supported",
|
|
137
|
+
"label": "Join"
|
|
138
|
+
},
|
|
139
|
+
{
|
|
140
|
+
"type": "lastIndexOf",
|
|
141
|
+
"docUrl": "https://developer.sailpoint.com/docs/extensibility/transforms/operations/last-index-of/",
|
|
142
|
+
"summary": "Returns last location of specific substring.",
|
|
143
|
+
"status": "supported",
|
|
144
|
+
"label": "Last Index Of"
|
|
145
|
+
},
|
|
146
|
+
{
|
|
147
|
+
"type": "leftPad",
|
|
148
|
+
"docUrl": "https://developer.sailpoint.com/docs/extensibility/transforms/operations/left-pad/",
|
|
149
|
+
"summary": "Left pad of the input string.",
|
|
150
|
+
"status": "supported",
|
|
151
|
+
"label": "Left Pad"
|
|
152
|
+
},
|
|
153
|
+
{
|
|
154
|
+
"type": "lookup",
|
|
155
|
+
"docUrl": "https://developer.sailpoint.com/docs/extensibility/transforms/operations/lookup/",
|
|
156
|
+
"summary": "Look up and return a key's matching value.",
|
|
157
|
+
"status": "supported",
|
|
158
|
+
"label": "Lookup"
|
|
159
|
+
},
|
|
160
|
+
{
|
|
161
|
+
"type": "lower",
|
|
162
|
+
"docUrl": "https://developer.sailpoint.com/docs/extensibility/transforms/operations/lower/",
|
|
163
|
+
"summary": "Convert an input string into all lowercase letters.",
|
|
164
|
+
"status": "supported",
|
|
165
|
+
"label": "Lower"
|
|
166
|
+
},
|
|
167
|
+
{
|
|
168
|
+
"type": "normalizeNames",
|
|
169
|
+
"docUrl": "https://developer.sailpoint.com/docs/extensibility/transforms/operations/name-normalizer/",
|
|
170
|
+
"summary": "Clean or standardize the spelling of strings coming in from source systems.",
|
|
171
|
+
"status": "supported",
|
|
172
|
+
"label": "Name Normalizer"
|
|
173
|
+
},
|
|
174
|
+
{
|
|
175
|
+
"type": "randomAlphaNumeric",
|
|
176
|
+
"docUrl": "https://developer.sailpoint.com/docs/extensibility/transforms/operations/random-alphanumeric/",
|
|
177
|
+
"summary": "Generate a random string of any length.",
|
|
178
|
+
"status": "supported",
|
|
179
|
+
"label": "Random Alphanumeric"
|
|
180
|
+
},
|
|
181
|
+
{
|
|
182
|
+
"type": "randomNumeric",
|
|
183
|
+
"docUrl": "https://developer.sailpoint.com/docs/extensibility/transforms/operations/random-numeric/",
|
|
184
|
+
"summary": "Generate a random number of any length.",
|
|
185
|
+
"status": "supported",
|
|
186
|
+
"label": "Random Numeric"
|
|
187
|
+
},
|
|
188
|
+
{
|
|
189
|
+
"type": "reference",
|
|
190
|
+
"docUrl": "https://developer.sailpoint.com/docs/extensibility/transforms/operations/reference/",
|
|
191
|
+
"summary": "Reuse a transform that has already been written.",
|
|
192
|
+
"status": "supported",
|
|
193
|
+
"label": "Reference"
|
|
194
|
+
},
|
|
195
|
+
{
|
|
196
|
+
"type": "replaceAll",
|
|
197
|
+
"docUrl": "https://developer.sailpoint.com/docs/extensibility/transforms/operations/replace-all/",
|
|
198
|
+
"summary": "Find and replace all instances of all patterns.",
|
|
199
|
+
"status": "supported",
|
|
200
|
+
"label": "Replace All"
|
|
201
|
+
},
|
|
202
|
+
{
|
|
203
|
+
"type": "replace",
|
|
204
|
+
"docUrl": "https://developer.sailpoint.com/docs/extensibility/transforms/operations/replace/",
|
|
205
|
+
"summary": "Find and replace all instances of a single string.",
|
|
206
|
+
"status": "supported",
|
|
207
|
+
"label": "Replace"
|
|
208
|
+
},
|
|
209
|
+
{
|
|
210
|
+
"type": "rfc5646",
|
|
211
|
+
"docUrl": "https://developer.sailpoint.com/docs/extensibility/transforms/operations/rfc-5646/",
|
|
212
|
+
"summary": "Convert three-letter abbreviation to RFC5646 language tag.",
|
|
213
|
+
"status": "supported",
|
|
214
|
+
"label": "RFC5646"
|
|
215
|
+
},
|
|
216
|
+
{
|
|
217
|
+
"type": "rightPad",
|
|
218
|
+
"docUrl": "https://developer.sailpoint.com/docs/extensibility/transforms/operations/right-pad/",
|
|
219
|
+
"summary": "Add padding to the right of an incoming string.",
|
|
220
|
+
"status": "supported",
|
|
221
|
+
"label": "Right Pad"
|
|
222
|
+
},
|
|
223
|
+
{
|
|
224
|
+
"type": "rule",
|
|
225
|
+
"docUrl": "https://developer.sailpoint.com/docs/extensibility/transforms/operations/rule/",
|
|
226
|
+
"summary": "Reuse rule logic that has already been written for a previous use case.",
|
|
227
|
+
"status": "supported",
|
|
228
|
+
"label": "Rule"
|
|
229
|
+
},
|
|
230
|
+
{
|
|
231
|
+
"type": "split",
|
|
232
|
+
"docUrl": "https://developer.sailpoint.com/docs/extensibility/transforms/operations/split/",
|
|
233
|
+
"summary": "Return the Nth element of a split array.",
|
|
234
|
+
"status": "supported",
|
|
235
|
+
"label": "Split"
|
|
236
|
+
},
|
|
237
|
+
{
|
|
238
|
+
"type": "static",
|
|
239
|
+
"docUrl": "https://developer.sailpoint.com/docs/extensibility/transforms/operations/static/",
|
|
240
|
+
"summary": "Return a fixed string value.",
|
|
241
|
+
"status": "supported",
|
|
242
|
+
"label": "Static"
|
|
243
|
+
},
|
|
244
|
+
{
|
|
245
|
+
"type": "substring",
|
|
246
|
+
"docUrl": "https://developer.sailpoint.com/docs/extensibility/transforms/operations/substring/",
|
|
247
|
+
"summary": "Get the inner portion of a string passed into the transform.",
|
|
248
|
+
"status": "supported",
|
|
249
|
+
"label": "Substring"
|
|
250
|
+
},
|
|
251
|
+
{
|
|
252
|
+
"type": "trim",
|
|
253
|
+
"docUrl": "https://developer.sailpoint.com/docs/extensibility/transforms/operations/trim/",
|
|
254
|
+
"summary": "Trim whitespaces from both the beginning and ending of input strings.",
|
|
255
|
+
"status": "supported",
|
|
256
|
+
"label": "Trim"
|
|
257
|
+
},
|
|
258
|
+
{
|
|
259
|
+
"type": "upper",
|
|
260
|
+
"docUrl": "https://developer.sailpoint.com/docs/extensibility/transforms/operations/upper/",
|
|
261
|
+
"summary": "Convert an input string into all uppercase letters.",
|
|
262
|
+
"status": "supported",
|
|
263
|
+
"label": "Upper"
|
|
264
|
+
},
|
|
265
|
+
{
|
|
266
|
+
"type": "usernameGenerator",
|
|
267
|
+
"docUrl": "https://developer.sailpoint.com/docs/extensibility/transforms/operations/username-generator/",
|
|
268
|
+
"summary": "Derive a unique value for an attribute in an account create profile.",
|
|
269
|
+
"status": "supported",
|
|
270
|
+
"label": "Username Generator"
|
|
271
|
+
},
|
|
272
|
+
{
|
|
273
|
+
"type": "uuid",
|
|
274
|
+
"docUrl": "https://developer.sailpoint.com/docs/extensibility/transforms/operations/uuid-generator/",
|
|
275
|
+
"summary": "Create a universal unique ID (UUID).",
|
|
276
|
+
"status": "supported",
|
|
277
|
+
"label": "UUID Generator"
|
|
278
|
+
}
|
|
279
|
+
]
|
|
280
|
+
}
|
|
@@ -0,0 +1,164 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
3
|
+
"$id": "sailpoint.isc.transforms.accountAttribute.schema.json",
|
|
4
|
+
"title": "SailPoint ISC Transform Schema - accountAttribute",
|
|
5
|
+
"description": "Strict schema derived from the SailPoint official Account Attribute operation documentation.",
|
|
6
|
+
"type": "object",
|
|
7
|
+
"additionalProperties": false,
|
|
8
|
+
"required": [
|
|
9
|
+
"type",
|
|
10
|
+
"name",
|
|
11
|
+
"attributes"
|
|
12
|
+
],
|
|
13
|
+
"properties": {
|
|
14
|
+
"type": {
|
|
15
|
+
"const": "accountAttribute"
|
|
16
|
+
},
|
|
17
|
+
"name": {
|
|
18
|
+
"type": "string",
|
|
19
|
+
"minLength": 1
|
|
20
|
+
},
|
|
21
|
+
"requiresPeriodicRefresh": {
|
|
22
|
+
"type": "boolean",
|
|
23
|
+
"default": false
|
|
24
|
+
},
|
|
25
|
+
"attributes": {
|
|
26
|
+
"type": "object",
|
|
27
|
+
"additionalProperties": false,
|
|
28
|
+
"required": [
|
|
29
|
+
"attributeName"
|
|
30
|
+
],
|
|
31
|
+
"properties": {
|
|
32
|
+
"sourceName": {
|
|
33
|
+
"type": "string",
|
|
34
|
+
"minLength": 1,
|
|
35
|
+
"description": "Source display name to search (e.g., 'Active Directory'). If the display name changes, this reference must be updated."
|
|
36
|
+
},
|
|
37
|
+
"applicationId": {
|
|
38
|
+
"type": "string",
|
|
39
|
+
"minLength": 1,
|
|
40
|
+
"description": "Alternative to sourceName: source external GUID."
|
|
41
|
+
},
|
|
42
|
+
"applicationName": {
|
|
43
|
+
"type": "string",
|
|
44
|
+
"minLength": 1,
|
|
45
|
+
"description": "Alternative to sourceName: source immutable name."
|
|
46
|
+
},
|
|
47
|
+
"attributeName": {
|
|
48
|
+
"type": "string",
|
|
49
|
+
"minLength": 1,
|
|
50
|
+
"description": "Account attribute to return (must match the account attribute name visible in the UI or source schema)."
|
|
51
|
+
},
|
|
52
|
+
"accountSortAttribute": {
|
|
53
|
+
"type": "string",
|
|
54
|
+
"minLength": 1,
|
|
55
|
+
"default": "created",
|
|
56
|
+
"description": "Attribute name to sort returned accounts by when multiple accounts exist. Default 'created' (ascending; oldest wins)."
|
|
57
|
+
},
|
|
58
|
+
"accountSortDescending": {
|
|
59
|
+
"type": "boolean",
|
|
60
|
+
"default": false,
|
|
61
|
+
"description": "Sort order when multiple accounts exist. Default false (ascending)."
|
|
62
|
+
},
|
|
63
|
+
"accountReturnFirstLink": {
|
|
64
|
+
"type": "boolean",
|
|
65
|
+
"default": false,
|
|
66
|
+
"description": "If true, return the value from the first account in the sorted list even if null; if false, return the first non-null value. Default false."
|
|
67
|
+
},
|
|
68
|
+
"accountFilter": {
|
|
69
|
+
"type": "string",
|
|
70
|
+
"minLength": 1,
|
|
71
|
+
"description": "Database filter (sailpoint.object.Filter) ANDed with the default source+identity filter. Only searchable fields are supported (nativeIdentity, displayName, entitlements)."
|
|
72
|
+
},
|
|
73
|
+
"accountPropertyFilter": {
|
|
74
|
+
"type": "string",
|
|
75
|
+
"minLength": 1,
|
|
76
|
+
"description": "In-memory filter (sailpoint.object.Filter) applied after retrieval. All account attributes can be referenced."
|
|
77
|
+
},
|
|
78
|
+
"input": {
|
|
79
|
+
"type": "object",
|
|
80
|
+
"description": "Explicit input object. If omitted, the transform uses implicit input configured via UI/source+attribute mapping.",
|
|
81
|
+
"additionalProperties": true
|
|
82
|
+
}
|
|
83
|
+
},
|
|
84
|
+
"allOf": [
|
|
85
|
+
{
|
|
86
|
+
"description": "Exactly one source reference must be provided: sourceName OR applicationId OR applicationName.",
|
|
87
|
+
"oneOf": [
|
|
88
|
+
{
|
|
89
|
+
"required": [
|
|
90
|
+
"sourceName"
|
|
91
|
+
],
|
|
92
|
+
"not": {
|
|
93
|
+
"anyOf": [
|
|
94
|
+
{
|
|
95
|
+
"required": [
|
|
96
|
+
"applicationId"
|
|
97
|
+
]
|
|
98
|
+
},
|
|
99
|
+
{
|
|
100
|
+
"required": [
|
|
101
|
+
"applicationName"
|
|
102
|
+
]
|
|
103
|
+
}
|
|
104
|
+
]
|
|
105
|
+
}
|
|
106
|
+
},
|
|
107
|
+
{
|
|
108
|
+
"required": [
|
|
109
|
+
"applicationId"
|
|
110
|
+
],
|
|
111
|
+
"not": {
|
|
112
|
+
"anyOf": [
|
|
113
|
+
{
|
|
114
|
+
"required": [
|
|
115
|
+
"sourceName"
|
|
116
|
+
]
|
|
117
|
+
},
|
|
118
|
+
{
|
|
119
|
+
"required": [
|
|
120
|
+
"applicationName"
|
|
121
|
+
]
|
|
122
|
+
}
|
|
123
|
+
]
|
|
124
|
+
}
|
|
125
|
+
},
|
|
126
|
+
{
|
|
127
|
+
"required": [
|
|
128
|
+
"applicationName"
|
|
129
|
+
],
|
|
130
|
+
"not": {
|
|
131
|
+
"anyOf": [
|
|
132
|
+
{
|
|
133
|
+
"required": [
|
|
134
|
+
"sourceName"
|
|
135
|
+
]
|
|
136
|
+
},
|
|
137
|
+
{
|
|
138
|
+
"required": [
|
|
139
|
+
"applicationId"
|
|
140
|
+
]
|
|
141
|
+
}
|
|
142
|
+
]
|
|
143
|
+
}
|
|
144
|
+
}
|
|
145
|
+
]
|
|
146
|
+
}
|
|
147
|
+
]
|
|
148
|
+
}
|
|
149
|
+
},
|
|
150
|
+
"examples": [
|
|
151
|
+
{
|
|
152
|
+
"type": "accountAttribute",
|
|
153
|
+
"name": "Account Attribute Transform",
|
|
154
|
+
"attributes": {
|
|
155
|
+
"sourceName": "Corporate HR",
|
|
156
|
+
"attributeName": "HIREDATE",
|
|
157
|
+
"accountSortAttribute": "created",
|
|
158
|
+
"accountSortDescending": true,
|
|
159
|
+
"accountReturnFirstLink": true,
|
|
160
|
+
"accountPropertyFilter": "(WORKER_STATUS__c == \"active\")"
|
|
161
|
+
}
|
|
162
|
+
}
|
|
163
|
+
]
|
|
164
|
+
}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
3
|
+
"$id": "sailpoint.isc.transforms.base64Decode.schema.json",
|
|
4
|
+
"title": "SailPoint ISC Transform Schema - base64Decode",
|
|
5
|
+
"description": "Strict schema derived from SailPoint official Base64 Decode operation docs. Note: This operation has no 'attributes' block; it acts on the incoming value (implicit input). Null handling (runtime): if incoming input is null, transform returns null.",
|
|
6
|
+
"type": "object",
|
|
7
|
+
"additionalProperties": false,
|
|
8
|
+
"required": [
|
|
9
|
+
"type",
|
|
10
|
+
"name"
|
|
11
|
+
],
|
|
12
|
+
"properties": {
|
|
13
|
+
"type": {
|
|
14
|
+
"const": "base64Decode"
|
|
15
|
+
},
|
|
16
|
+
"name": {
|
|
17
|
+
"type": "string",
|
|
18
|
+
"minLength": 1
|
|
19
|
+
},
|
|
20
|
+
"requiresPeriodicRefresh": {
|
|
21
|
+
"type": "boolean",
|
|
22
|
+
"default": false,
|
|
23
|
+
"description": "Whether the transform should be reevaluated nightly during identity refresh."
|
|
24
|
+
}
|
|
25
|
+
},
|
|
26
|
+
"examples": [
|
|
27
|
+
{
|
|
28
|
+
"type": "base64Decode",
|
|
29
|
+
"name": "Base64 Decode Transform"
|
|
30
|
+
},
|
|
31
|
+
{
|
|
32
|
+
"type": "base64Decode",
|
|
33
|
+
"name": "Base64 Decode Transform with Image",
|
|
34
|
+
"requiresPeriodicRefresh": false
|
|
35
|
+
}
|
|
36
|
+
]
|
|
37
|
+
}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
3
|
+
"$id": "sailpoint.isc.transforms.base64Encode.schema.json",
|
|
4
|
+
"title": "SailPoint ISC Transform Schema - base64Encode",
|
|
5
|
+
"description": "Strict schema derived from the SailPoint official Base64 Encode operation documentation. This operation uses the incoming value (implicit input from Identity Profile mapping) and does not define an 'attributes' object. Runtime null-handling: if the input is null, output is null.",
|
|
6
|
+
"type": "object",
|
|
7
|
+
"additionalProperties": false,
|
|
8
|
+
"required": [
|
|
9
|
+
"type",
|
|
10
|
+
"name"
|
|
11
|
+
],
|
|
12
|
+
"properties": {
|
|
13
|
+
"type": {
|
|
14
|
+
"const": "base64Encode"
|
|
15
|
+
},
|
|
16
|
+
"name": {
|
|
17
|
+
"type": "string",
|
|
18
|
+
"minLength": 1
|
|
19
|
+
},
|
|
20
|
+
"requiresPeriodicRefresh": {
|
|
21
|
+
"type": "boolean",
|
|
22
|
+
"default": false,
|
|
23
|
+
"description": "Whether the transform logic should be re-evaluated every evening as part of identity refresh. Default false."
|
|
24
|
+
}
|
|
25
|
+
},
|
|
26
|
+
"examples": [
|
|
27
|
+
{
|
|
28
|
+
"type": "base64Encode",
|
|
29
|
+
"name": "Base64 Encode Transform"
|
|
30
|
+
}
|
|
31
|
+
]
|
|
32
|
+
}
|
|
@@ -0,0 +1,109 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
3
|
+
"$id": "sailpoint.isc.transforms.concat.schema.json",
|
|
4
|
+
"title": "SailPoint ISC Transform Schema - concat",
|
|
5
|
+
"description": "Strict schema derived from the SailPoint official Concatenation operation documentation. Concatenates an array of values (static strings or nested transform objects) into a single string output.",
|
|
6
|
+
"type": "object",
|
|
7
|
+
"additionalProperties": false,
|
|
8
|
+
"required": [
|
|
9
|
+
"type",
|
|
10
|
+
"name",
|
|
11
|
+
"attributes"
|
|
12
|
+
],
|
|
13
|
+
"properties": {
|
|
14
|
+
"type": {
|
|
15
|
+
"const": "concat"
|
|
16
|
+
},
|
|
17
|
+
"name": {
|
|
18
|
+
"type": "string",
|
|
19
|
+
"minLength": 1
|
|
20
|
+
},
|
|
21
|
+
"requiresPeriodicRefresh": {
|
|
22
|
+
"type": "boolean",
|
|
23
|
+
"default": false,
|
|
24
|
+
"description": "Whether the transform logic should be reevaluated nightly as part of identity refresh. Default false."
|
|
25
|
+
},
|
|
26
|
+
"attributes": {
|
|
27
|
+
"type": "object",
|
|
28
|
+
"additionalProperties": false,
|
|
29
|
+
"required": [
|
|
30
|
+
"values"
|
|
31
|
+
],
|
|
32
|
+
"properties": {
|
|
33
|
+
"values": {
|
|
34
|
+
"type": "array",
|
|
35
|
+
"minItems": 2,
|
|
36
|
+
"description": "Array of items to join. Each item must be a static string or a nested transform object.",
|
|
37
|
+
"items": {
|
|
38
|
+
"oneOf": [
|
|
39
|
+
{
|
|
40
|
+
"type": "string"
|
|
41
|
+
},
|
|
42
|
+
{
|
|
43
|
+
"$ref": "#/$defs/NestedTransform"
|
|
44
|
+
}
|
|
45
|
+
]
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
},
|
|
51
|
+
"$defs": {
|
|
52
|
+
"NestedTransform": {
|
|
53
|
+
"type": "object",
|
|
54
|
+
"description": "Nested transform object used inside other transforms (docs examples often omit 'name' on nested transforms). Operation-specific validation should be applied by the referenced operation schema.",
|
|
55
|
+
"additionalProperties": false,
|
|
56
|
+
"required": [
|
|
57
|
+
"type",
|
|
58
|
+
"attributes"
|
|
59
|
+
],
|
|
60
|
+
"properties": {
|
|
61
|
+
"id": {
|
|
62
|
+
"type": "string"
|
|
63
|
+
},
|
|
64
|
+
"name": {
|
|
65
|
+
"type": "string",
|
|
66
|
+
"minLength": 1
|
|
67
|
+
},
|
|
68
|
+
"type": {
|
|
69
|
+
"type": "string",
|
|
70
|
+
"minLength": 1
|
|
71
|
+
},
|
|
72
|
+
"requiresPeriodicRefresh": {
|
|
73
|
+
"type": "boolean"
|
|
74
|
+
},
|
|
75
|
+
"attributes": {
|
|
76
|
+
"type": "object",
|
|
77
|
+
"additionalProperties": true,
|
|
78
|
+
"description": "Operation-specific attributes for the nested transform."
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
},
|
|
83
|
+
"examples": [
|
|
84
|
+
{
|
|
85
|
+
"type": "concat",
|
|
86
|
+
"name": "Test Concat Transform",
|
|
87
|
+
"attributes": {
|
|
88
|
+
"values": [
|
|
89
|
+
{
|
|
90
|
+
"type": "accountAttribute",
|
|
91
|
+
"attributes": {
|
|
92
|
+
"sourceName": "HR Source",
|
|
93
|
+
"attributeName": "FirstName"
|
|
94
|
+
}
|
|
95
|
+
},
|
|
96
|
+
" ",
|
|
97
|
+
{
|
|
98
|
+
"type": "accountAttribute",
|
|
99
|
+
"attributes": {
|
|
100
|
+
"sourceName": "HR Source",
|
|
101
|
+
"attributeName": "LastName"
|
|
102
|
+
}
|
|
103
|
+
},
|
|
104
|
+
" (Contractor)"
|
|
105
|
+
]
|
|
106
|
+
}
|
|
107
|
+
}
|
|
108
|
+
]
|
|
109
|
+
}
|