@cloud-copilot/iam-data 0.11.202508241 → 0.12.202508251
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/data/conditionPatterns.json +7 -1
- package/dist/cjs/findConditionKey.d.ts.map +1 -1
- package/dist/cjs/findConditionKey.js +7 -13
- package/dist/cjs/findConditionKey.js.map +1 -1
- package/dist/esm/findConditionKey.d.ts.map +1 -1
- package/dist/esm/findConditionKey.js +8 -14
- package/dist/esm/findConditionKey.js.map +1 -1
- package/package.json +2 -2
|
@@ -113,8 +113,14 @@
|
|
|
113
113
|
"s3express:AccessPointTag/.+?": "s3express:AccessPointTag/${TagKey}",
|
|
114
114
|
"s3express:BucketTag/.+?": "s3express:BucketTag/${TagKey}"
|
|
115
115
|
},
|
|
116
|
+
"s3-outposts": {
|
|
117
|
+
"s3-outposts:ExistingObjectTag/.+?": "s3-outposts:ExistingObjectTag/<key>",
|
|
118
|
+
"s3-outposts:RequestObjectTag/.+?": "s3-outposts:RequestObjectTag/<key>"
|
|
119
|
+
},
|
|
116
120
|
"s3": {
|
|
117
|
-
"s3:AccessPointTag/.+?": "s3:AccessPointTag/${TagKey}"
|
|
121
|
+
"s3:AccessPointTag/.+?": "s3:AccessPointTag/${TagKey}",
|
|
122
|
+
"s3:ExistingObjectTag/.+?": "s3:ExistingObjectTag/<key>",
|
|
123
|
+
"s3:RequestObjectTag/.+?": "s3:RequestObjectTag/<key>"
|
|
118
124
|
},
|
|
119
125
|
"sagemaker": {
|
|
120
126
|
"sagemaker:ResourceTag/.+?": "sagemaker:ResourceTag/${TagKey}",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"findConditionKey.d.ts","sourceRoot":"","sources":["../../src/findConditionKey.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAiD,MAAM,oBAAoB,CAAA;
|
|
1
|
+
{"version":3,"file":"findConditionKey.d.ts","sourceRoot":"","sources":["../../src/findConditionKey.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAiD,MAAM,oBAAoB,CAAA;AA2BhG;;;;;;;;GAQG;AACH,wBAAsB,gBAAgB,CAAC,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,GAAG,SAAS,CAAC,CAkE9F"}
|
|
@@ -35,22 +35,18 @@ async function findConditionKey(conditionKey) {
|
|
|
35
35
|
// If it starts with 'aws', check global condition keys
|
|
36
36
|
if (normalizedConditionKey.startsWith('aws:')) {
|
|
37
37
|
// First check for exact match in global condition keys
|
|
38
|
-
const exactGlobalMatch = globalConditionKeys_js_1.
|
|
38
|
+
const exactGlobalMatch = globalConditionKeys_js_1.globalConditionKeysByName[normalizedConditionKey];
|
|
39
39
|
if (exactGlobalMatch) {
|
|
40
40
|
return exactGlobalMatch;
|
|
41
41
|
}
|
|
42
42
|
// Then check global condition keys with variables (like aws:PrincipalTag/tag-key)
|
|
43
|
-
const
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
return
|
|
43
|
+
const slashIndex = normalizedConditionKey.indexOf('/');
|
|
44
|
+
if (slashIndex !== -1) {
|
|
45
|
+
const prefix = normalizedConditionKey.substring(0, slashIndex);
|
|
46
|
+
const variableGlobalMatch = globalConditionKeys_js_1.globalVariableConditionKeysByPrefix[prefix];
|
|
47
|
+
if (variableGlobalMatch && conditionKey.length > prefix.length + 1) {
|
|
48
|
+
return variableGlobalMatch;
|
|
49
49
|
}
|
|
50
|
-
return false;
|
|
51
|
-
});
|
|
52
|
-
if (variableGlobalMatch) {
|
|
53
|
-
return variableGlobalMatch;
|
|
54
50
|
}
|
|
55
51
|
return undefined;
|
|
56
52
|
}
|
|
@@ -79,8 +75,6 @@ async function findConditionKey(conditionKey) {
|
|
|
79
75
|
if (servicePatterns) {
|
|
80
76
|
for (const [patternStr, templateKey] of Object.entries(servicePatterns)) {
|
|
81
77
|
const regex = new RegExp(`^${patternStr}$`, 'i');
|
|
82
|
-
console.log(patternStr);
|
|
83
|
-
console.log(normalizedConditionKey);
|
|
84
78
|
if (regex.test(normalizedConditionKey)) {
|
|
85
79
|
// Found a pattern match, try to get the template condition key
|
|
86
80
|
const hasTemplateKey = await (0, conditionKeys_js_1.iamConditionKeyExists)(servicePrefix, templateKey);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"findConditionKey.js","sourceRoot":"","sources":["../../src/findConditionKey.ts"],"names":[],"mappings":";;
|
|
1
|
+
{"version":3,"file":"findConditionKey.js","sourceRoot":"","sources":["../../src/findConditionKey.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"findConditionKey.d.ts","sourceRoot":"","sources":["../../src/findConditionKey.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAiD,MAAM,oBAAoB,CAAA;
|
|
1
|
+
{"version":3,"file":"findConditionKey.d.ts","sourceRoot":"","sources":["../../src/findConditionKey.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAiD,MAAM,oBAAoB,CAAA;AA2BhG;;;;;;;;GAQG;AACH,wBAAsB,gBAAgB,CAAC,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,GAAG,SAAS,CAAC,CAkE9F"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { iamConditionKeyDetails, iamConditionKeyExists } from './conditionKeys.js';
|
|
2
2
|
import { readConditionPatterns, readUnassociatedConditions } from './data.js';
|
|
3
|
-
import {
|
|
3
|
+
import { globalConditionKeysByName, globalVariableConditionKeysByPrefix } from './globalConditionKeys.js';
|
|
4
4
|
import { iamServiceExists } from './services.js';
|
|
5
5
|
/**
|
|
6
6
|
* Get the service prefixes to search for a condition key
|
|
@@ -32,22 +32,18 @@ export async function findConditionKey(conditionKey) {
|
|
|
32
32
|
// If it starts with 'aws', check global condition keys
|
|
33
33
|
if (normalizedConditionKey.startsWith('aws:')) {
|
|
34
34
|
// First check for exact match in global condition keys
|
|
35
|
-
const exactGlobalMatch =
|
|
35
|
+
const exactGlobalMatch = globalConditionKeysByName[normalizedConditionKey];
|
|
36
36
|
if (exactGlobalMatch) {
|
|
37
37
|
return exactGlobalMatch;
|
|
38
38
|
}
|
|
39
39
|
// Then check global condition keys with variables (like aws:PrincipalTag/tag-key)
|
|
40
|
-
const
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
return
|
|
40
|
+
const slashIndex = normalizedConditionKey.indexOf('/');
|
|
41
|
+
if (slashIndex !== -1) {
|
|
42
|
+
const prefix = normalizedConditionKey.substring(0, slashIndex);
|
|
43
|
+
const variableGlobalMatch = globalVariableConditionKeysByPrefix[prefix];
|
|
44
|
+
if (variableGlobalMatch && conditionKey.length > prefix.length + 1) {
|
|
45
|
+
return variableGlobalMatch;
|
|
46
46
|
}
|
|
47
|
-
return false;
|
|
48
|
-
});
|
|
49
|
-
if (variableGlobalMatch) {
|
|
50
|
-
return variableGlobalMatch;
|
|
51
47
|
}
|
|
52
48
|
return undefined;
|
|
53
49
|
}
|
|
@@ -76,8 +72,6 @@ export async function findConditionKey(conditionKey) {
|
|
|
76
72
|
if (servicePatterns) {
|
|
77
73
|
for (const [patternStr, templateKey] of Object.entries(servicePatterns)) {
|
|
78
74
|
const regex = new RegExp(`^${patternStr}$`, 'i');
|
|
79
|
-
console.log(patternStr);
|
|
80
|
-
console.log(normalizedConditionKey);
|
|
81
75
|
if (regex.test(normalizedConditionKey)) {
|
|
82
76
|
// Found a pattern match, try to get the template condition key
|
|
83
77
|
const hasTemplateKey = await iamConditionKeyExists(servicePrefix, templateKey);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"findConditionKey.js","sourceRoot":"","sources":["../../src/findConditionKey.ts"],"names":[],"mappings":"AAAA,OAAO,EAAgB,sBAAsB,EAAE,qBAAqB,EAAE,MAAM,oBAAoB,CAAA;AAChG,OAAO,EAAE,qBAAqB,EAAE,0BAA0B,EAAE,MAAM,WAAW,CAAA;AAC7E,OAAO,
|
|
1
|
+
{"version":3,"file":"findConditionKey.js","sourceRoot":"","sources":["../../src/findConditionKey.ts"],"names":[],"mappings":"AAAA,OAAO,EAAgB,sBAAsB,EAAE,qBAAqB,EAAE,MAAM,oBAAoB,CAAA;AAChG,OAAO,EAAE,qBAAqB,EAAE,0BAA0B,EAAE,MAAM,WAAW,CAAA;AAC7E,OAAO,EACL,yBAAyB,EACzB,mCAAmC,EACpC,MAAM,0BAA0B,CAAA;AACjC,OAAO,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAA;AAEhD;;;;;GAKG;AACH,KAAK,UAAU,kBAAkB,CAAC,aAAqB;IACrD,8BAA8B;IAC9B,MAAM,aAAa,GAAG,MAAM,gBAAgB,CAAC,aAAa,CAAC,CAAA;IAE3D,IAAI,aAAa,EAAE,CAAC;QAClB,OAAO,CAAC,aAAa,CAAC,CAAA;IACxB,CAAC;IAED,uDAAuD;IACvD,MAAM,sBAAsB,GAAG,MAAM,0BAA0B,EAAE,CAAA;IACjE,OAAO,sBAAsB,CAAC,aAAa,CAAC,IAAI,EAAE,CAAA;AACpD,CAAC;AAED;;;;;;;;GAQG;AACH,MAAM,CAAC,KAAK,UAAU,gBAAgB,CAAC,YAAoB;IACzD,MAAM,sBAAsB,GAAG,YAAY,CAAC,WAAW,EAAE,CAAA;IAEzD,uDAAuD;IACvD,IAAI,sBAAsB,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE,CAAC;QAC9C,uDAAuD;QACvD,MAAM,gBAAgB,GAAG,yBAAyB,CAAC,sBAAsB,CAAC,CAAA;QAC1E,IAAI,gBAAgB,EAAE,CAAC;YACrB,OAAO,gBAAgB,CAAA;QACzB,CAAC;QAED,kFAAkF;QAClF,MAAM,UAAU,GAAG,sBAAsB,CAAC,OAAO,CAAC,GAAG,CAAC,CAAA;QACtD,IAAI,UAAU,KAAK,CAAC,CAAC,EAAE,CAAC;YACtB,MAAM,MAAM,GAAG,sBAAsB,CAAC,SAAS,CAAC,CAAC,EAAE,UAAU,CAAC,CAAA;YAC9D,MAAM,mBAAmB,GAAG,mCAAmC,CAAC,MAAM,CAAC,CAAA;YACvE,IAAI,mBAAmB,IAAI,YAAY,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACnE,OAAO,mBAAmB,CAAA;YAC5B,CAAC;QACH,CAAC;QAED,OAAO,SAAS,CAAA;IAClB,CAAC;IAED,6DAA6D;IAC7D,MAAM,UAAU,GAAG,sBAAsB,CAAC,OAAO,CAAC,GAAG,CAAC,CAAA;IACtD,IAAI,UAAU,KAAK,CAAC,CAAC,EAAE,CAAC;QACtB,OAAO,SAAS,CAAA,CAAC,0BAA0B;IAC7C,CAAC;IAED,MAAM,aAAa,GAAG,sBAAsB,CAAC,SAAS,CAAC,CAAC,EAAE,UAAU,CAAC,CAAA;IAErE,qCAAqC;IACrC,MAAM,gBAAgB,GAAG,MAAM,kBAAkB,CAAC,aAAa,CAAC,CAAA;IAEhE,IAAI,gBAAgB,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAClC,OAAO,SAAS,CAAA,CAAC,8CAA8C;IACjE,CAAC;IAED,2CAA2C;IAC3C,KAAK,MAAM,OAAO,IAAI,gBAAgB,EAAE,CAAC;QACvC,kDAAkD;QAClD,MAAM,eAAe,GAAG,MAAM,qBAAqB,CAAC,OAAO,EAAE,sBAAsB,CAAC,CAAA;QACpF,IAAI,eAAe,EAAE,CAAC;YACpB,OAAO,MAAM,sBAAsB,CAAC,OAAO,EAAE,sBAAsB,CAAC,CAAA;QACtE,CAAC;IACH,CAAC;IAED,wCAAwC;IACxC,MAAM,iBAAiB,GAAG,MAAM,qBAAqB,EAAE,CAAA;IACvD,MAAM,eAAe,GAAG,iBAAiB,CAAC,aAAa,CAAC,CAAA;IAExD,IAAI,eAAe,EAAE,CAAC;QACpB,KAAK,MAAM,CAAC,UAAU,EAAE,WAAW,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,eAAe,CAAC,EAAE,CAAC;YACxE,MAAM,KAAK,GAAG,IAAI,MAAM,CAAC,IAAI,UAAU,GAAG,EAAE,GAAG,CAAC,CAAA;YAChD,IAAI,KAAK,CAAC,IAAI,CAAC,sBAAsB,CAAC,EAAE,CAAC;gBACvC,+DAA+D;gBAC/D,MAAM,cAAc,GAAG,MAAM,qBAAqB,CAAC,aAAa,EAAE,WAAW,CAAC,CAAA;gBAC9E,IAAI,cAAc,EAAE,CAAC;oBACnB,OAAO,MAAM,sBAAsB,CAAC,aAAa,EAAE,WAAW,CAAC,CAAA;gBACjE,CAAC;YACH,CAAC;QACH,CAAC;IACH,CAAC;IAED,OAAO,SAAS,CAAA;AAClB,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@cloud-copilot/iam-data",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.12.202508251",
|
|
4
4
|
"description": "AWS IAM Data",
|
|
5
5
|
"repository": "github:cloud-copilot/iam-data",
|
|
6
|
-
"updatedAt": "2025-08-
|
|
6
|
+
"updatedAt": "2025-08-25T04:51:24.209Z",
|
|
7
7
|
"exports": {
|
|
8
8
|
".": {
|
|
9
9
|
"import": "./dist/esm/index.js",
|