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,90 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
3
|
+
"$id": "sailpoint.isc.transforms.indexOf.schema.json",
|
|
4
|
+
"title": "SailPoint ISC Transform Schema - indexOf",
|
|
5
|
+
"description": "Strict schema derived from the SailPoint official Index Of operation documentation. Finds the beginning index of 'substring' within the incoming value. If not found, the transform returns -1 (runtime behavior).",
|
|
6
|
+
"type": "object",
|
|
7
|
+
"additionalProperties": false,
|
|
8
|
+
"required": [
|
|
9
|
+
"type",
|
|
10
|
+
"name",
|
|
11
|
+
"attributes"
|
|
12
|
+
],
|
|
13
|
+
"properties": {
|
|
14
|
+
"type": {
|
|
15
|
+
"const": "indexOf"
|
|
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 every evening as part of identity refresh. Default false."
|
|
25
|
+
},
|
|
26
|
+
"attributes": {
|
|
27
|
+
"type": "object",
|
|
28
|
+
"additionalProperties": false,
|
|
29
|
+
"required": [
|
|
30
|
+
"substring"
|
|
31
|
+
],
|
|
32
|
+
"properties": {
|
|
33
|
+
"substring": {
|
|
34
|
+
"type": "string",
|
|
35
|
+
"minLength": 1,
|
|
36
|
+
"description": "The substring to search for. Returns -1 (runtime) if not found."
|
|
37
|
+
},
|
|
38
|
+
"input": {
|
|
39
|
+
"description": "Optional explicit input passed into the transform. If omitted, ISC uses input from the source+attribute combination configured in the UI.",
|
|
40
|
+
"oneOf": [
|
|
41
|
+
{
|
|
42
|
+
"$ref": "#/$defs/NestedTransform"
|
|
43
|
+
}
|
|
44
|
+
]
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
},
|
|
49
|
+
"$defs": {
|
|
50
|
+
"NestedTransform": {
|
|
51
|
+
"type": "object",
|
|
52
|
+
"description": "Nested transform object used as explicit input (name optional in docs).",
|
|
53
|
+
"additionalProperties": false,
|
|
54
|
+
"required": [
|
|
55
|
+
"type",
|
|
56
|
+
"attributes"
|
|
57
|
+
],
|
|
58
|
+
"properties": {
|
|
59
|
+
"id": {
|
|
60
|
+
"type": "string"
|
|
61
|
+
},
|
|
62
|
+
"name": {
|
|
63
|
+
"type": "string",
|
|
64
|
+
"minLength": 1
|
|
65
|
+
},
|
|
66
|
+
"type": {
|
|
67
|
+
"type": "string",
|
|
68
|
+
"minLength": 1
|
|
69
|
+
},
|
|
70
|
+
"requiresPeriodicRefresh": {
|
|
71
|
+
"type": "boolean"
|
|
72
|
+
},
|
|
73
|
+
"attributes": {
|
|
74
|
+
"type": "object",
|
|
75
|
+
"additionalProperties": true,
|
|
76
|
+
"description": "Operation-specific attributes for the nested transform."
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
},
|
|
81
|
+
"examples": [
|
|
82
|
+
{
|
|
83
|
+
"attributes": {
|
|
84
|
+
"substring": "admin_"
|
|
85
|
+
},
|
|
86
|
+
"type": "indexOf",
|
|
87
|
+
"name": "Index Of Transform"
|
|
88
|
+
}
|
|
89
|
+
]
|
|
90
|
+
}
|
|
@@ -0,0 +1,103 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
3
|
+
"$id": "sailpoint.isc.transforms.iso3166.schema.json",
|
|
4
|
+
"title": "SailPoint ISC Transform Schema - iso3166",
|
|
5
|
+
"description": "Strict schema derived from the SailPoint official ISO3166 operation documentation. Converts an input string into an ISO 3166 country code value. Optional format selects alpha2/alpha3/numeric (default alpha2). Runtime null/invalid handling: invalid country codes result in null.",
|
|
6
|
+
"type": "object",
|
|
7
|
+
"additionalProperties": false,
|
|
8
|
+
"required": [
|
|
9
|
+
"type",
|
|
10
|
+
"name"
|
|
11
|
+
],
|
|
12
|
+
"properties": {
|
|
13
|
+
"type": {
|
|
14
|
+
"const": "iso3166"
|
|
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 reevaluated nightly as part of identity refresh. Default false."
|
|
24
|
+
},
|
|
25
|
+
"attributes": {
|
|
26
|
+
"type": "object",
|
|
27
|
+
"additionalProperties": false,
|
|
28
|
+
"description": "Optional configuration.",
|
|
29
|
+
"properties": {
|
|
30
|
+
"format": {
|
|
31
|
+
"type": "string",
|
|
32
|
+
"enum": [
|
|
33
|
+
"alpha2",
|
|
34
|
+
"alpha3",
|
|
35
|
+
"numeric"
|
|
36
|
+
],
|
|
37
|
+
"default": "alpha2",
|
|
38
|
+
"description": "Output country code format."
|
|
39
|
+
},
|
|
40
|
+
"input": {
|
|
41
|
+
"description": "Optional explicit input passed into the transform (nested transform). If omitted, uses UI-configured input.",
|
|
42
|
+
"oneOf": [
|
|
43
|
+
{
|
|
44
|
+
"$ref": "#/$defs/NestedTransform"
|
|
45
|
+
}
|
|
46
|
+
]
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
},
|
|
51
|
+
"$defs": {
|
|
52
|
+
"NestedTransform": {
|
|
53
|
+
"type": "object",
|
|
54
|
+
"description": "Nested transform object used for explicit input (name optional in docs).",
|
|
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": "iso3166",
|
|
86
|
+
"name": "ISO3166 Transform"
|
|
87
|
+
},
|
|
88
|
+
{
|
|
89
|
+
"type": "iso3166",
|
|
90
|
+
"name": "ISO3166 Transform (Alpha3)",
|
|
91
|
+
"attributes": {
|
|
92
|
+
"format": "alpha3"
|
|
93
|
+
}
|
|
94
|
+
},
|
|
95
|
+
{
|
|
96
|
+
"type": "iso3166",
|
|
97
|
+
"name": "ISO3166 Transform (Numeric)",
|
|
98
|
+
"attributes": {
|
|
99
|
+
"format": "numeric"
|
|
100
|
+
}
|
|
101
|
+
}
|
|
102
|
+
]
|
|
103
|
+
}
|
|
@@ -0,0 +1,113 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
3
|
+
"$id": "sailpoint.isc.transforms.join.schema.json",
|
|
4
|
+
"title": "SailPoint ISC Transform Schema - join",
|
|
5
|
+
"description": "Strict schema derived from SailPoint official Join operation documentation. Join concatenates an array of values into a single string output using an optional separator (default ',').",
|
|
6
|
+
"type": "object",
|
|
7
|
+
"additionalProperties": false,
|
|
8
|
+
"required": [
|
|
9
|
+
"type",
|
|
10
|
+
"name",
|
|
11
|
+
"attributes"
|
|
12
|
+
],
|
|
13
|
+
"properties": {
|
|
14
|
+
"type": {
|
|
15
|
+
"const": "join"
|
|
16
|
+
},
|
|
17
|
+
"name": {
|
|
18
|
+
"type": "string",
|
|
19
|
+
"minLength": 1
|
|
20
|
+
},
|
|
21
|
+
"requiresPeriodicRefresh": {
|
|
22
|
+
"type": "boolean",
|
|
23
|
+
"default": false,
|
|
24
|
+
"description": "Whether the transform 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 can 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
|
+
"separator": {
|
|
49
|
+
"type": "string",
|
|
50
|
+
"default": ",",
|
|
51
|
+
"description": "Separator used between joined values. Default ','."
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
},
|
|
56
|
+
"$defs": {
|
|
57
|
+
"NestedTransform": {
|
|
58
|
+
"type": "object",
|
|
59
|
+
"description": "Nested transform object used inside values[]. Docs examples often omit 'name' for nested transforms.",
|
|
60
|
+
"additionalProperties": false,
|
|
61
|
+
"required": [
|
|
62
|
+
"type",
|
|
63
|
+
"attributes"
|
|
64
|
+
],
|
|
65
|
+
"properties": {
|
|
66
|
+
"id": {
|
|
67
|
+
"type": "string"
|
|
68
|
+
},
|
|
69
|
+
"name": {
|
|
70
|
+
"type": "string",
|
|
71
|
+
"minLength": 1
|
|
72
|
+
},
|
|
73
|
+
"type": {
|
|
74
|
+
"type": "string",
|
|
75
|
+
"minLength": 1
|
|
76
|
+
},
|
|
77
|
+
"requiresPeriodicRefresh": {
|
|
78
|
+
"type": "boolean"
|
|
79
|
+
},
|
|
80
|
+
"attributes": {
|
|
81
|
+
"type": "object",
|
|
82
|
+
"additionalProperties": true,
|
|
83
|
+
"description": "Operation-specific attributes for the nested transform."
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
},
|
|
88
|
+
"examples": [
|
|
89
|
+
{
|
|
90
|
+
"type": "join",
|
|
91
|
+
"name": "Join Transform",
|
|
92
|
+
"attributes": {
|
|
93
|
+
"separator": ";",
|
|
94
|
+
"values": [
|
|
95
|
+
{
|
|
96
|
+
"type": "accountAttribute",
|
|
97
|
+
"attributes": {
|
|
98
|
+
"sourceName": "HR Source",
|
|
99
|
+
"attributeName": "role1"
|
|
100
|
+
}
|
|
101
|
+
},
|
|
102
|
+
{
|
|
103
|
+
"type": "accountAttribute",
|
|
104
|
+
"attributes": {
|
|
105
|
+
"sourceName": "HR Source",
|
|
106
|
+
"attributeName": "role2"
|
|
107
|
+
}
|
|
108
|
+
}
|
|
109
|
+
]
|
|
110
|
+
}
|
|
111
|
+
}
|
|
112
|
+
]
|
|
113
|
+
}
|
|
@@ -0,0 +1,90 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
3
|
+
"$id": "sailpoint.isc.transforms.lastIndexOf.schema.json",
|
|
4
|
+
"title": "SailPoint ISC Transform Schema - lastIndexOf",
|
|
5
|
+
"description": "Strict schema derived from the SailPoint official Last Index Of operation documentation. Returns the index of the last occurrence of 'substring' within the incoming value. If not found, returns -1 (runtime behavior).",
|
|
6
|
+
"type": "object",
|
|
7
|
+
"additionalProperties": false,
|
|
8
|
+
"required": [
|
|
9
|
+
"type",
|
|
10
|
+
"name",
|
|
11
|
+
"attributes"
|
|
12
|
+
],
|
|
13
|
+
"properties": {
|
|
14
|
+
"type": {
|
|
15
|
+
"const": "lastIndexOf"
|
|
16
|
+
},
|
|
17
|
+
"name": {
|
|
18
|
+
"type": "string",
|
|
19
|
+
"minLength": 1
|
|
20
|
+
},
|
|
21
|
+
"requiresPeriodicRefresh": {
|
|
22
|
+
"type": "boolean",
|
|
23
|
+
"default": false,
|
|
24
|
+
"description": "Whether the transform should be reevaluated nightly as part of identity refresh. Default false."
|
|
25
|
+
},
|
|
26
|
+
"attributes": {
|
|
27
|
+
"type": "object",
|
|
28
|
+
"additionalProperties": false,
|
|
29
|
+
"required": [
|
|
30
|
+
"substring"
|
|
31
|
+
],
|
|
32
|
+
"properties": {
|
|
33
|
+
"substring": {
|
|
34
|
+
"type": "string",
|
|
35
|
+
"minLength": 1,
|
|
36
|
+
"description": "The substring to search for. Returns -1 (runtime) if not found."
|
|
37
|
+
},
|
|
38
|
+
"input": {
|
|
39
|
+
"description": "Optional explicit input passed into the transform (nested transform). If omitted, uses UI-configured input.",
|
|
40
|
+
"oneOf": [
|
|
41
|
+
{
|
|
42
|
+
"$ref": "#/$defs/NestedTransform"
|
|
43
|
+
}
|
|
44
|
+
]
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
},
|
|
49
|
+
"$defs": {
|
|
50
|
+
"NestedTransform": {
|
|
51
|
+
"type": "object",
|
|
52
|
+
"description": "Nested transform object used as explicit input (name optional in docs).",
|
|
53
|
+
"additionalProperties": false,
|
|
54
|
+
"required": [
|
|
55
|
+
"type",
|
|
56
|
+
"attributes"
|
|
57
|
+
],
|
|
58
|
+
"properties": {
|
|
59
|
+
"id": {
|
|
60
|
+
"type": "string"
|
|
61
|
+
},
|
|
62
|
+
"name": {
|
|
63
|
+
"type": "string",
|
|
64
|
+
"minLength": 1
|
|
65
|
+
},
|
|
66
|
+
"type": {
|
|
67
|
+
"type": "string",
|
|
68
|
+
"minLength": 1
|
|
69
|
+
},
|
|
70
|
+
"requiresPeriodicRefresh": {
|
|
71
|
+
"type": "boolean"
|
|
72
|
+
},
|
|
73
|
+
"attributes": {
|
|
74
|
+
"type": "object",
|
|
75
|
+
"additionalProperties": true,
|
|
76
|
+
"description": "Operation-specific attributes for the nested transform."
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
},
|
|
81
|
+
"examples": [
|
|
82
|
+
{
|
|
83
|
+
"attributes": {
|
|
84
|
+
"substring": "_"
|
|
85
|
+
},
|
|
86
|
+
"type": "lastIndexOf",
|
|
87
|
+
"name": "Last Index Of Transform"
|
|
88
|
+
}
|
|
89
|
+
]
|
|
90
|
+
}
|
|
@@ -0,0 +1,96 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
3
|
+
"$id": "sailpoint.isc.transforms.leftPad.schema.json",
|
|
4
|
+
"title": "SailPoint ISC Transform Schema - leftPad",
|
|
5
|
+
"description": "Strict schema derived from the SailPoint official Left Pad operation documentation. Left-pads the incoming string to the specified length using an optional padding string (default single space).",
|
|
6
|
+
"type": "object",
|
|
7
|
+
"additionalProperties": false,
|
|
8
|
+
"required": [
|
|
9
|
+
"type",
|
|
10
|
+
"name",
|
|
11
|
+
"attributes"
|
|
12
|
+
],
|
|
13
|
+
"properties": {
|
|
14
|
+
"type": {
|
|
15
|
+
"const": "leftPad"
|
|
16
|
+
},
|
|
17
|
+
"name": {
|
|
18
|
+
"type": "string",
|
|
19
|
+
"minLength": 1
|
|
20
|
+
},
|
|
21
|
+
"requiresPeriodicRefresh": {
|
|
22
|
+
"type": "boolean",
|
|
23
|
+
"default": false,
|
|
24
|
+
"description": "Whether the transform should be reevaluated nightly as part of identity refresh. Default false."
|
|
25
|
+
},
|
|
26
|
+
"attributes": {
|
|
27
|
+
"type": "object",
|
|
28
|
+
"additionalProperties": false,
|
|
29
|
+
"required": [
|
|
30
|
+
"length"
|
|
31
|
+
],
|
|
32
|
+
"properties": {
|
|
33
|
+
"length": {
|
|
34
|
+
"type": "integer",
|
|
35
|
+
"minimum": 0,
|
|
36
|
+
"description": "Desired output length after padding."
|
|
37
|
+
},
|
|
38
|
+
"padding": {
|
|
39
|
+
"type": "string",
|
|
40
|
+
"default": " ",
|
|
41
|
+
"description": "Padding string to use (default is a single space)."
|
|
42
|
+
},
|
|
43
|
+
"input": {
|
|
44
|
+
"description": "Optional explicit input string (nested transform). If omitted, uses UI-configured input.",
|
|
45
|
+
"oneOf": [
|
|
46
|
+
{
|
|
47
|
+
"$ref": "#/$defs/NestedTransform"
|
|
48
|
+
}
|
|
49
|
+
]
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
},
|
|
54
|
+
"$defs": {
|
|
55
|
+
"NestedTransform": {
|
|
56
|
+
"type": "object",
|
|
57
|
+
"description": "Nested transform object used as explicit input (name optional in docs).",
|
|
58
|
+
"additionalProperties": false,
|
|
59
|
+
"required": [
|
|
60
|
+
"type",
|
|
61
|
+
"attributes"
|
|
62
|
+
],
|
|
63
|
+
"properties": {
|
|
64
|
+
"id": {
|
|
65
|
+
"type": "string"
|
|
66
|
+
},
|
|
67
|
+
"name": {
|
|
68
|
+
"type": "string",
|
|
69
|
+
"minLength": 1
|
|
70
|
+
},
|
|
71
|
+
"type": {
|
|
72
|
+
"type": "string",
|
|
73
|
+
"minLength": 1
|
|
74
|
+
},
|
|
75
|
+
"requiresPeriodicRefresh": {
|
|
76
|
+
"type": "boolean"
|
|
77
|
+
},
|
|
78
|
+
"attributes": {
|
|
79
|
+
"type": "object",
|
|
80
|
+
"additionalProperties": true,
|
|
81
|
+
"description": "Operation-specific attributes for the nested transform."
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
},
|
|
86
|
+
"examples": [
|
|
87
|
+
{
|
|
88
|
+
"type": "leftPad",
|
|
89
|
+
"name": "Left Pad Transform",
|
|
90
|
+
"attributes": {
|
|
91
|
+
"length": 8,
|
|
92
|
+
"padding": "0"
|
|
93
|
+
}
|
|
94
|
+
}
|
|
95
|
+
]
|
|
96
|
+
}
|
|
@@ -0,0 +1,100 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
3
|
+
"$id": "sailpoint.isc.transforms.lookup.schema.json",
|
|
4
|
+
"title": "SailPoint ISC Transform Schema - lookup",
|
|
5
|
+
"description": "Strict schema derived from the SailPoint official Lookup operation documentation. Lookup returns a value from a key/value table using the incoming value as the key. Per docs, the table must include a 'default' key to avoid runtime errors when the lookup key is missing.",
|
|
6
|
+
"type": "object",
|
|
7
|
+
"additionalProperties": false,
|
|
8
|
+
"required": [
|
|
9
|
+
"type",
|
|
10
|
+
"name",
|
|
11
|
+
"attributes"
|
|
12
|
+
],
|
|
13
|
+
"properties": {
|
|
14
|
+
"type": {
|
|
15
|
+
"const": "lookup"
|
|
16
|
+
},
|
|
17
|
+
"name": {
|
|
18
|
+
"type": "string",
|
|
19
|
+
"minLength": 1
|
|
20
|
+
},
|
|
21
|
+
"requiresPeriodicRefresh": {
|
|
22
|
+
"type": "boolean",
|
|
23
|
+
"default": false,
|
|
24
|
+
"description": "Whether the transform should be reevaluated nightly as part of identity refresh. Default false."
|
|
25
|
+
},
|
|
26
|
+
"attributes": {
|
|
27
|
+
"type": "object",
|
|
28
|
+
"additionalProperties": false,
|
|
29
|
+
"required": [
|
|
30
|
+
"table"
|
|
31
|
+
],
|
|
32
|
+
"properties": {
|
|
33
|
+
"table": {
|
|
34
|
+
"type": "object",
|
|
35
|
+
"description": "Map of input keys to output values. Must include 'default'.",
|
|
36
|
+
"additionalProperties": {
|
|
37
|
+
"type": "string",
|
|
38
|
+
"description": "Lookup output value."
|
|
39
|
+
},
|
|
40
|
+
"required": [
|
|
41
|
+
"default"
|
|
42
|
+
]
|
|
43
|
+
},
|
|
44
|
+
"input": {
|
|
45
|
+
"description": "Optional explicit input to use as the lookup key (nested transform). If omitted, uses UI-configured input.",
|
|
46
|
+
"oneOf": [
|
|
47
|
+
{
|
|
48
|
+
"$ref": "#/$defs/NestedTransform"
|
|
49
|
+
}
|
|
50
|
+
]
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
},
|
|
55
|
+
"$defs": {
|
|
56
|
+
"NestedTransform": {
|
|
57
|
+
"type": "object",
|
|
58
|
+
"description": "Nested transform object used for explicit input (name optional in docs).",
|
|
59
|
+
"additionalProperties": false,
|
|
60
|
+
"required": [
|
|
61
|
+
"type",
|
|
62
|
+
"attributes"
|
|
63
|
+
],
|
|
64
|
+
"properties": {
|
|
65
|
+
"id": {
|
|
66
|
+
"type": "string"
|
|
67
|
+
},
|
|
68
|
+
"name": {
|
|
69
|
+
"type": "string",
|
|
70
|
+
"minLength": 1
|
|
71
|
+
},
|
|
72
|
+
"type": {
|
|
73
|
+
"type": "string",
|
|
74
|
+
"minLength": 1
|
|
75
|
+
},
|
|
76
|
+
"requiresPeriodicRefresh": {
|
|
77
|
+
"type": "boolean"
|
|
78
|
+
},
|
|
79
|
+
"attributes": {
|
|
80
|
+
"type": "object",
|
|
81
|
+
"additionalProperties": true,
|
|
82
|
+
"description": "Operation-specific attributes for the nested transform."
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
},
|
|
87
|
+
"examples": [
|
|
88
|
+
{
|
|
89
|
+
"type": "lookup",
|
|
90
|
+
"name": "Lookup Transform",
|
|
91
|
+
"attributes": {
|
|
92
|
+
"table": {
|
|
93
|
+
"US": "United States",
|
|
94
|
+
"IN": "India",
|
|
95
|
+
"default": "Unknown"
|
|
96
|
+
}
|
|
97
|
+
}
|
|
98
|
+
}
|
|
99
|
+
]
|
|
100
|
+
}
|
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
3
|
+
"$id": "sailpoint.isc.transforms.lower.schema.json",
|
|
4
|
+
"title": "SailPoint ISC Transform Schema - lower",
|
|
5
|
+
"description": "Strict schema derived from the SailPoint official Lower operation documentation. Converts an input string into all lowercase letters.",
|
|
6
|
+
"type": "object",
|
|
7
|
+
"additionalProperties": false,
|
|
8
|
+
"required": [
|
|
9
|
+
"type",
|
|
10
|
+
"name"
|
|
11
|
+
],
|
|
12
|
+
"properties": {
|
|
13
|
+
"type": {
|
|
14
|
+
"const": "lower"
|
|
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 as part of identity refresh. Default false."
|
|
24
|
+
},
|
|
25
|
+
"attributes": {
|
|
26
|
+
"type": "object",
|
|
27
|
+
"additionalProperties": false,
|
|
28
|
+
"description": "Optional configuration. Only 'input' is documented.",
|
|
29
|
+
"properties": {
|
|
30
|
+
"input": {
|
|
31
|
+
"description": "Optional explicit input string (nested transform). If omitted, uses UI-configured input.",
|
|
32
|
+
"oneOf": [
|
|
33
|
+
{
|
|
34
|
+
"$ref": "#/$defs/NestedTransform"
|
|
35
|
+
}
|
|
36
|
+
]
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
},
|
|
41
|
+
"$defs": {
|
|
42
|
+
"NestedTransform": {
|
|
43
|
+
"type": "object",
|
|
44
|
+
"description": "Nested transform object used as explicit input (name optional in docs).",
|
|
45
|
+
"additionalProperties": false,
|
|
46
|
+
"required": [
|
|
47
|
+
"type",
|
|
48
|
+
"attributes"
|
|
49
|
+
],
|
|
50
|
+
"properties": {
|
|
51
|
+
"id": {
|
|
52
|
+
"type": "string"
|
|
53
|
+
},
|
|
54
|
+
"name": {
|
|
55
|
+
"type": "string",
|
|
56
|
+
"minLength": 1
|
|
57
|
+
},
|
|
58
|
+
"type": {
|
|
59
|
+
"type": "string",
|
|
60
|
+
"minLength": 1
|
|
61
|
+
},
|
|
62
|
+
"requiresPeriodicRefresh": {
|
|
63
|
+
"type": "boolean"
|
|
64
|
+
},
|
|
65
|
+
"attributes": {
|
|
66
|
+
"type": "object",
|
|
67
|
+
"additionalProperties": true,
|
|
68
|
+
"description": "Operation-specific attributes for the nested transform."
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
},
|
|
73
|
+
"examples": [
|
|
74
|
+
{
|
|
75
|
+
"attributes": {},
|
|
76
|
+
"type": "lower",
|
|
77
|
+
"name": "Lower Transform"
|
|
78
|
+
}
|
|
79
|
+
]
|
|
80
|
+
}
|