aws-cdk-github-oidc 4.2.4 → 4.2.5
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/.jsii +2 -2
- package/lib/provider.js +1 -1
- package/lib/role.js +1 -1
- package/migration-test/README.md +77 -0
- package/migration-test/bin/app.ts +8 -0
- package/migration-test/cdk.json +6 -0
- package/migration-test/config/resource-mapping.template.json +5 -0
- package/migration-test/lib/migration-test-stack.ts +77 -0
- package/migration-test/package.json +24 -0
- package/migration-test/pnpm-lock.yaml +423 -0
- package/migration-test/pnpm-workspace.yaml +21 -0
- package/migration-test/scripts/run-migration.sh +179 -0
- package/package.json +1 -1
package/.jsii
CHANGED
|
@@ -9075,6 +9075,6 @@
|
|
|
9075
9075
|
"symbolId": "src/iam-role-props:RoleProps"
|
|
9076
9076
|
}
|
|
9077
9077
|
},
|
|
9078
|
-
"version": "4.2.
|
|
9079
|
-
"fingerprint": "
|
|
9078
|
+
"version": "4.2.5",
|
|
9079
|
+
"fingerprint": "LTZU9YOlnf1mcr4UKY3KF3J2SeSq64fZPLauWde6gMI="
|
|
9080
9080
|
}
|
package/lib/provider.js
CHANGED
|
@@ -55,6 +55,6 @@ class GithubActionsIdentityProvider extends iam.OidcProviderNative {
|
|
|
55
55
|
}
|
|
56
56
|
exports.GithubActionsIdentityProvider = GithubActionsIdentityProvider;
|
|
57
57
|
_a = JSII_RTTI_SYMBOL_1;
|
|
58
|
-
GithubActionsIdentityProvider[_a] = { fqn: "aws-cdk-github-oidc.GithubActionsIdentityProvider", version: "4.2.
|
|
58
|
+
GithubActionsIdentityProvider[_a] = { fqn: "aws-cdk-github-oidc.GithubActionsIdentityProvider", version: "4.2.5" };
|
|
59
59
|
GithubActionsIdentityProvider.issuer = "token.actions.githubusercontent.com";
|
|
60
60
|
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvdmlkZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvcHJvdmlkZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSxtQ0FBbUM7QUFDbkMsMkNBQTJDO0FBaUIzQzs7Ozs7Ozs7O0dBU0c7QUFDSCxNQUFhLDZCQUNYLFNBQVEsR0FBRyxDQUFDLGtCQUFrQjtJQUs5Qjs7Ozs7Ozs7Ozs7O09BWUc7SUFDSSxNQUFNLENBQUMsV0FBVyxDQUN2QixLQUFnQixFQUNoQixFQUFVO1FBRVYsTUFBTSxTQUFTLEdBQUcsR0FBRyxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsS0FBSyxDQUFDLENBQUMsT0FBTyxDQUFDO1FBQzlDLE1BQU0sV0FBVyxHQUFHLGdCQUFnQixTQUFTLGtCQUFrQiw2QkFBNkIsQ0FBQyxNQUFNLEVBQUUsQ0FBQztRQUN0RyxPQUFPLEdBQUcsQ0FBQyxrQkFBa0IsQ0FBQyxtQkFBbUIsQ0FBQyxLQUFLLEVBQUUsRUFBRSxFQUFFLFdBQVcsQ0FBQyxDQUFDO0lBQzVFLENBQUM7SUFFRDs7Ozs7Ozs7OztPQVVHO0lBQ0gsWUFDRSxLQUFnQixFQUNoQixFQUFVLEVBQ1YsS0FBMEM7UUFFMUMsS0FBSyxDQUFDLEtBQUssRUFBRSxFQUFFLEVBQUU7WUFDZixHQUFHLEtBQUs7WUFDUixHQUFHLEVBQUUsV0FBVyw2QkFBNkIsQ0FBQyxNQUFNLEVBQUU7WUFDdEQsU0FBUyxFQUFFLENBQUMsbUJBQW1CLENBQUM7U0FDakMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQzs7QUFqREgsc0VBa0RDOzs7QUE5Q3dCLG9DQUFNLEdBQVcscUNBQXFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyBjZGsgZnJvbSBcImF3cy1jZGstbGliXCI7XG5pbXBvcnQgKiBhcyBpYW0gZnJvbSBcImF3cy1jZGstbGliL2F3cy1pYW1cIjtcbmltcG9ydCB7IENvbnN0cnVjdCB9IGZyb20gXCJjb25zdHJ1Y3RzXCI7XG5cbmV4cG9ydCBpbnRlcmZhY2UgR2l0aHViQWN0aW9uc0lkZW50aXR5UHJvdmlkZXJQcm9wcyB7XG4gIC8qKlxuICAgKiBUaGUgcmVtb3ZhbCBwb2xpY3kgZm9yIHRoZSBwcm92aWRlci5cbiAgICpcbiAgICogQGRlZmF1bHQgY2RrLlJlbW92YWxQb2xpY3kuREVTVFJPWVxuICAgKi9cbiAgcmVhZG9ubHkgcmVtb3ZhbFBvbGljeT86IGNkay5SZW1vdmFsUG9saWN5O1xufVxuXG4vKipcbiAqIERlc2NyaWJlcyBhIEdpdGh1YiBPcGVuSUQgQ29ubmVjdCBJZGVudGl0eSBQcm92aWRlciBmb3IgQVdTIElBTS5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBJR2l0aHViQWN0aW9uc0lkZW50aXR5UHJvdmlkZXIgZXh0ZW5kcyBpYW0uSU9pZGNQcm92aWRlciB7fVxuXG4vKipcbiAqIEdpdGh1YiBBY3Rpb25zIGFzIE9wZW5JRCBDb25uZWN0IElkZW50aXR5IFByb3ZpZGVyIGZvciBBV1MgSUFNLlxuICogVGhlcmUgY2FuIGJlIG9ubHkgb25lIChwZXIgQVdTIEFjY291bnQpLlxuICpcbiAqIFVzZSBgZnJvbUFjY291bnRgIHRvIHJldHJpZXZlIGEgcmVmZXJlbmNlIHRvIGV4aXN0aW5nIEdpdGh1YiBPSURDIHByb3ZpZGVyLlxuICpcbiAqIFVzZXMgdGhlIG5hdGl2ZSBDbG91ZEZvcm1hdGlvbiByZXNvdXJjZSBBV1M6OklBTTo6T0lEQ1Byb3ZpZGVyIChubyBMYW1iZGEgZnVuY3Rpb25zKS5cbiAqXG4gKiBAc2VlIGh0dHBzOi8vZG9jcy5naXRodWIuY29tL2VuL2FjdGlvbnMvZGVwbG95bWVudC9zZWN1cml0eS1oYXJkZW5pbmcteW91ci1kZXBsb3ltZW50cy9jb25maWd1cmluZy1vcGVuaWQtY29ubmVjdC1pbi1hbWF6b24td2ViLXNlcnZpY2VzXG4gKi9cbmV4cG9ydCBjbGFzcyBHaXRodWJBY3Rpb25zSWRlbnRpdHlQcm92aWRlclxuICBleHRlbmRzIGlhbS5PaWRjUHJvdmlkZXJOYXRpdmVcbiAgaW1wbGVtZW50cyBJR2l0aHViQWN0aW9uc0lkZW50aXR5UHJvdmlkZXJcbntcbiAgcHVibGljIHN0YXRpYyByZWFkb25seSBpc3N1ZXI6IHN0cmluZyA9IFwidG9rZW4uYWN0aW9ucy5naXRodWJ1c2VyY29udGVudC5jb21cIjtcblxuICAvKipcbiAgICogUmV0cmlldmUgYSByZWZlcmVuY2UgdG8gZXhpc3RpbmcgR2l0aHViIE9JREMgcHJvdmlkZXIgaW4geW91ciBBV1MgYWNjb3VudC5cbiAgICogQW4gQVdTIGFjY291bnQgY2FuIG9ubHkgaGF2ZSBzaW5nbGUgR2l0aHViIE9JREMgcHJvdmlkZXIgY29uZmlndXJlZCBpbnRvIGl0LFxuICAgKiBzbyBpbnRlcm5hbGx5IHRoZSByZWZlcmVuY2UgaXMgbWFkZSBieSBjb25zdHJ1Y3RpbmcgdGhlIEFSTiBmcm9tIEFXU1xuICAgKiBBY2NvdW50IElEICYgR2l0aHViIGlzc3VlciBVUkwuXG4gICAqXG4gICAqIEBwYXJhbSBzY29wZSBDREsgU3RhY2sgb3IgQ29uc3RydWN0IHRvIHdoaWNoIHRoZSBwcm92aWRlciBpcyBhc3NpZ25lZCB0b1xuICAgKiBAcGFyYW0gaWQgQ0RLIENvbnN0cnVjdCBJRCBnaXZlbiB0byB0aGUgY29uc3RydWN0XG4gICAqIEByZXR1cm5zIGEgQ0RLIENvbnN0cnVjdCByZXByZXNlbnRpbmcgdGhlIEdpdGh1YiBPSURDIHByb3ZpZGVyXG4gICAqXG4gICAqIEBleGFtcGxlXG4gICAqIEdpdGh1YkFjdGlvbnNJZGVudGl0eVByb3ZpZGVyLmZyb21BY2NvdW50KHNjb3BlLCBcIkdpdGh1YlByb3ZpZGVyXCIpO1xuICAgKi9cbiAgcHVibGljIHN0YXRpYyBmcm9tQWNjb3VudChcbiAgICBzY29wZTogQ29uc3RydWN0LFxuICAgIGlkOiBzdHJpbmcsXG4gICk6IElHaXRodWJBY3Rpb25zSWRlbnRpdHlQcm92aWRlciB7XG4gICAgY29uc3QgYWNjb3VudElkID0gY2RrLlN0YWNrLm9mKHNjb3BlKS5hY2NvdW50O1xuICAgIGNvbnN0IHByb3ZpZGVyQXJuID0gYGFybjphd3M6aWFtOjoke2FjY291bnRJZH06b2lkYy1wcm92aWRlci8ke0dpdGh1YkFjdGlvbnNJZGVudGl0eVByb3ZpZGVyLmlzc3Vlcn1gO1xuICAgIHJldHVybiBpYW0uT2lkY1Byb3ZpZGVyTmF0aXZlLmZyb21PaWRjUHJvdmlkZXJBcm4oc2NvcGUsIGlkLCBwcm92aWRlckFybik7XG4gIH1cblxuICAvKipcbiAgICogRGVmaW5lIGEgbmV3IEdpdGh1YiBPcGVuSUQgQ29ubmVjdCBJZGVudGl0eSBQcm92aWRlciBmb3IgQVdTIElBTS5cbiAgICogVGhlcmUgY2FuIGJlIG9ubHkgb25lIChwZXIgQVdTIEFjY291bnQpLlxuICAgKlxuICAgKiBAcGFyYW0gc2NvcGUgQ0RLIFN0YWNrIG9yIENvbnN0cnVjdCB0byB3aGljaCB0aGUgcHJvdmlkZXIgaXMgYXNzaWduZWQgdG9cbiAgICogQHBhcmFtIGlkIENESyBDb25zdHJ1Y3QgSUQgZ2l2ZW4gdG8gdGhlIGNvbnN0cnVjdFxuICAgKiBAcGFyYW0gcHJvcHMgb3B0aW9uYWwgcHJvcGVydGllcyBmb3IgdGhlIHByb3ZpZGVyXG4gICAqXG4gICAqIEBleGFtcGxlXG4gICAqIG5ldyBHaXRodWJBY3Rpb25zSWRlbnRpdHlQcm92aWRlcihzY29wZSwgXCJHaXRodWJQcm92aWRlclwiKTtcbiAgICovXG4gIGNvbnN0cnVjdG9yKFxuICAgIHNjb3BlOiBDb25zdHJ1Y3QsXG4gICAgaWQ6IHN0cmluZyxcbiAgICBwcm9wcz86IEdpdGh1YkFjdGlvbnNJZGVudGl0eVByb3ZpZGVyUHJvcHMsXG4gICkge1xuICAgIHN1cGVyKHNjb3BlLCBpZCwge1xuICAgICAgLi4ucHJvcHMsXG4gICAgICB1cmw6IGBodHRwczovLyR7R2l0aHViQWN0aW9uc0lkZW50aXR5UHJvdmlkZXIuaXNzdWVyfWAsXG4gICAgICBjbGllbnRJZHM6IFtcInN0cy5hbWF6b25hd3MuY29tXCJdLFxuICAgIH0pO1xuICB9XG59XG4iXX0=
|
package/lib/role.js
CHANGED
|
@@ -101,5 +101,5 @@ class GithubActionsRole extends iam.Role {
|
|
|
101
101
|
}
|
|
102
102
|
exports.GithubActionsRole = GithubActionsRole;
|
|
103
103
|
_a = JSII_RTTI_SYMBOL_1;
|
|
104
|
-
GithubActionsRole[_a] = { fqn: "aws-cdk-github-oidc.GithubActionsRole", version: "4.2.
|
|
104
|
+
GithubActionsRole[_a] = { fqn: "aws-cdk-github-oidc.GithubActionsRole", version: "4.2.5" };
|
|
105
105
|
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm9sZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9yb2xlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsbUNBQW1DO0FBQ25DLDJDQUEyQztBQUczQyxpREFBaUQ7QUFDakQseUNBR29CO0FBb0VwQjs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FpQkc7QUFDSCxNQUFhLGlCQUFrQixTQUFRLEdBQUcsQ0FBQyxJQUFJO0lBQzdDOzs7O09BSUc7SUFDSyxNQUFNLENBQUMsZ0JBQWdCLENBQzdCLEtBQTZCO1FBRTdCLE1BQU0sWUFBWSxHQUFRLEtBQUssQ0FBQztRQUNoQyxPQUFPLFlBQVksQ0FBQyxRQUFRLENBQUM7UUFDN0IsT0FBTyxZQUFZLENBQUMsS0FBSyxDQUFDO1FBQzFCLE9BQU8sWUFBWSxDQUFDLElBQUksQ0FBQztRQUN6QixPQUFPLFlBQVksQ0FBQyxNQUFNLENBQUM7UUFDM0IsT0FBTyxZQUFZLENBQUM7SUFDdEIsQ0FBQztJQUVELDhEQUE4RDtJQUN0RCxNQUFNLENBQUMsYUFBYSxDQUFDLEtBQWdCLEVBQUUsS0FBYTtRQUMxRCxJQUFJLHNCQUFtQixDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSyxJQUFJLEVBQUUsQ0FBQztZQUM3QyxHQUFHLENBQUMsV0FBVyxDQUFDLEVBQUUsQ0FBQyxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQ2hDLG9DQUFvQyxLQUFLLDBLQUEwSyxDQUNwTixDQUFDO1FBQ0osQ0FBQztJQUNILENBQUM7SUFFRCw0REFBNEQ7SUFDcEQsTUFBTSxDQUFDLFlBQVksQ0FBQyxLQUFnQixFQUFFLElBQVk7UUFDeEQsSUFBSSxJQUFJLEtBQUssRUFBRSxFQUFFLENBQUM7WUFDaEIsR0FBRyxDQUFDLFdBQVcsQ0FBQyxFQUFFLENBQUMsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUNoQyxtQ0FBbUMsSUFBSSw2QkFBNkIsQ0FDckUsQ0FBQztRQUNKLENBQUM7SUFDSCxDQUFDO0lBRUQsb0RBQW9EO0lBQzVDLE1BQU0sQ0FBQyxhQUFhLENBQUMsS0FBMEI7UUFDckQsTUFBTSxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUUsTUFBTSxHQUFHLEdBQUcsRUFBRSxHQUFHLEtBQUssQ0FBQztRQUM1QyxPQUFPLFFBQVEsS0FBSyxJQUFJLElBQUksSUFBSSxNQUFNLEVBQUUsQ0FBQztJQUMzQyxDQUFDO0lBRUQ7Ozs7Ozs7Ozs7Ozs7Ozs7O09BaUJHO0lBQ0gsWUFBWSxLQUFnQixFQUFFLEVBQVUsRUFBRSxLQUE2QjtRQUNyRSxNQUFNLEVBQUUsUUFBUSxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUUsR0FBRyxLQUFLLENBQUM7UUFFeEMsc0JBQXNCO1FBQ3RCLGlCQUFpQixDQUFDLGFBQWEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUM7UUFDOUMsaUJBQWlCLENBQUMsWUFBWSxDQUFDLEtBQUssRUFBRSxJQUFJLENBQUMsQ0FBQztRQUU1QyxpQkFBaUI7UUFDakIsTUFBTSxPQUFPLEdBQUcsaUJBQWlCLENBQUMsYUFBYSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ3ZELE1BQU0sU0FBUyxHQUFHLGlCQUFpQixDQUFDLGdCQUFnQixDQUFDLEtBQUssQ0FBQyxDQUFDO1FBRTVELCtCQUErQjtRQUMvQixLQUFLLENBQUMsS0FBSyxFQUFFLEVBQUUsRUFBRTtZQUNmLEdBQUcsU0FBUztZQUNaLFNBQVMsRUFBRSxJQUFJLEdBQUcsQ0FBQyxvQkFBb0IsQ0FBQyxRQUFRLENBQUMsZUFBZSxFQUFFO2dCQUNoRSxVQUFVLEVBQUU7b0JBQ1Ysb0RBQW9EO29CQUNwRCxDQUFDLEdBQUcsd0NBQTZCLENBQUMsTUFBTSxNQUFNLENBQUMsRUFBRSxPQUFPO2lCQUN6RDtnQkFDRCxZQUFZLEVBQUU7b0JBQ1osdUVBQXVFO29CQUN2RSwwS0FBMEs7b0JBQzFLLENBQUMsR0FBRyx3Q0FBNkIsQ0FBQyxNQUFNLE1BQU0sQ0FBQyxFQUFFLG1CQUFtQjtpQkFDckU7YUFDRixDQUFDO1NBQ0gsQ0FBQyxDQUFDO0lBQ0wsQ0FBQzs7QUFyRkgsOENBc0ZDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgY2RrIGZyb20gXCJhd3MtY2RrLWxpYlwiO1xuaW1wb3J0ICogYXMgaWFtIGZyb20gXCJhd3MtY2RrLWxpYi9hd3MtaWFtXCI7XG5pbXBvcnQgeyBDb25zdHJ1Y3QgfSBmcm9tIFwiY29uc3RydWN0c1wiO1xuaW1wb3J0IHsgUm9sZVByb3BzIH0gZnJvbSBcIi4vaWFtLXJvbGUtcHJvcHNcIjtcbmltcG9ydCBnaXRodWJVc2VybmFtZVJlZ2V4IGZyb20gXCIuL293bmVyLXJlZ2V4cFwiO1xuaW1wb3J0IHtcbiAgR2l0aHViQWN0aW9uc0lkZW50aXR5UHJvdmlkZXIsXG4gIElHaXRodWJBY3Rpb25zSWRlbnRpdHlQcm92aWRlcixcbn0gZnJvbSBcIi4vcHJvdmlkZXJcIjtcblxuLyoqXG4gKiBHaXRodWIgcmVsYXRlZCBjb25maWd1cmF0aW9uIHRoYXQgZm9ybXMgdGhlIHRydXN0IHBvbGljeSBmb3IgdGhpcyBJQU0gUm9sZS5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBHaXRodWJDb25maWd1cmF0aW9uIHtcbiAgLyoqXG4gICAqIFJlZmVyZW5jZSB0byBHaXRodWIgT3BlbklEIENvbm5lY3QgUHJvdmlkZXIgY29uZmlndXJlZCBpbiBBV1MgSUFNLlxuICAgKlxuICAgKiBFaXRoZXIgcGFzcyBhbiBjb25zdHJ1Y3QgZGVmaW5lZCBieSBgbmV3IEdpdGh1YkFjdGlvbnNJZGVudGl0eVByb3ZpZGVyYFxuICAgKiBvciBhIHJldHJpZXZlZCByZWZlcmVuY2UgZnJvbSBgR2l0aHViQWN0aW9uc0lkZW50aXR5UHJvdmlkZXIuZnJvbUFjY291bnRgLlxuICAgKiBUaGVyZSBjYW4gYmUgb25seSBvbmUgKHBlciBBV1MgQWNjb3VudCkuXG4gICAqL1xuICByZWFkb25seSBwcm92aWRlcjogSUdpdGh1YkFjdGlvbnNJZGVudGl0eVByb3ZpZGVyO1xuXG4gIC8qKlxuICAgKiBSZXBvc2l0b3J5IG93bmVyIChvcmdhbml6YXRpb24gb3IgdXNlcm5hbWUpLlxuICAgKlxuICAgKiBAZXhhbXBsZVxuICAgKiAnb2N0by1vcmcnXG4gICAqL1xuICByZWFkb25seSBvd25lcjogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBSZXBvc2l0b3J5IG5hbWUgKHNsdWcpIHdpdGhvdXQgdGhlIG93bmVyLlxuICAgKlxuICAgKiBAZXhhbXBsZVxuICAgKiAnb2N0by1yZXBvJ1xuICAgKi9cbiAgcmVhZG9ubHkgcmVwbzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBTdWJqZWN0IGNvbmRpdGlvbiBmaWx0ZXIsIGFwcGVuZGVkIGFmdGVyIGByZXBvOiR7b3duZXJ9LyR7cmVwb306YCBzdHJpbmcgaW4gSUFNIFJvbGUgdHJ1c3QgcmVsYXRpb25zaGlwLlxuICAgKlxuICAgKiBAZGVmYXVsdFxuICAgKiAnKidcbiAgICpcbiAgICogWW91IG1heSB1c2UgdGhpcyB2YWx1ZSB0byBvbmx5IGFsbG93IEdpdGh1YiB0byBhc3N1bWUgdGhlIHJvbGUgb24gc3BlY2lmaWMgYnJhbmNoZXMsIHRhZ3MsIGVudmlyb25tZW50cywgcHVsbCByZXF1ZXN0cyBldGMuXG4gICAqIEBleGFtcGxlXG4gICAqICdyZWY6cmVmcy90YWdzL3YqJ1xuICAgKiAncmVmOnJlZnMvaGVhZHMvZGVtby1icmFuY2gnXG4gICAqICdwdWxsX3JlcXVlc3QnXG4gICAqICdlbnZpcm9ubWVudDpQcm9kdWN0aW9uJ1xuICAgKlxuICAgKiBAc2VlIGh0dHBzOi8vZG9jcy5naXRodWIuY29tL2VuL2FjdGlvbnMvZGVwbG95bWVudC9zZWN1cml0eS1oYXJkZW5pbmcteW91ci1kZXBsb3ltZW50cy9hYm91dC1zZWN1cml0eS1oYXJkZW5pbmctd2l0aC1vcGVuaWQtY29ubmVjdCNleGFtcGxlc1xuICAgKi9cbiAgcmVhZG9ubHkgZmlsdGVyPzogc3RyaW5nO1xufVxuXG4vKipcbiAqIFByb3BzIHRoYXQgZGVmaW5lIHRoZSBJQU0gUm9sZSB0aGF0IGNhbiBiZSBhc3N1bWVkIGJ5IEdpdGh1YiBBY3Rpb25zIHdvcmtmbG93XG4gKiB2aWEgR2l0aHViIE9wZW5JRCBDb25uZWN0IElkZW50aXR5IFByb3ZpZGVyLlxuICpcbiAqIEJlc2lkZXMgYEdpdGh1YkNvbmZpZ3VyYXRpb25gLCB5b3UgbWF5IHBhc3MgaW4gYW55IGBpYW0uUm9sZVByb3BzYCBleGNlcHQgYGFzc3VtZWRCeWBcbiAqIHdoaWNoIHdpbGwgYmUgZGVmaW5lZCBieSB0aGlzIGNvbnN0cnVjdCAoQ0RLIHdpbGwgZmFpbCBpZiB5b3UgZG8pLlxuICpcbiAqIEBleGFtcGxlXG4gKiB7XG4gKiAgIHByb3ZpZGVyOiBHaXRodWJBY3Rpb25zSWRlbnRpdHlQcm92aWRlci5mcm9tQWNjb3VudChzY29wZSwgXCJHaXRodWJQcm92aWRlclwiKSxcbiAqICAgb3duZXI6ICdvY3RvLW9yZycsXG4gKiAgIHJlcG86ICdvY3RvLXJlcG8nLFxuICogICBmaWx0ZXI6ICdyZWY6cmVmcy90YWdzL3YqJyxcbiAqICAgcm9sZU5hbWU6ICdNeURlcGxveVJvbGUnLFxuICogfVxuICovXG5leHBvcnQgaW50ZXJmYWNlIEdpdGh1YkFjdGlvbnNSb2xlUHJvcHNcbiAgZXh0ZW5kcyBHaXRodWJDb25maWd1cmF0aW9uLCBSb2xlUHJvcHMge31cblxuLyoqXG4gKiBEZWZpbmUgYW4gSUFNIFJvbGUgdGhhdCBjYW4gYmUgYXNzdW1lZCBieSBHaXRodWIgQWN0aW9ucyB3b3JrZmxvd1xuICogdmlhIEdpdGh1YiBPcGVuSUQgQ29ubmVjdCBJZGVudGl0eSBQcm92aWRlci5cbiAqXG4gKiBCZXNpZGVzIGBHaXRodWJDb25maWd1cmF0aW9uYCwgeW91IG1heSBwYXNzIGluIGFueSBgaWFtLlJvbGVQcm9wc2AgZXhjZXB0IGBhc3N1bWVkQnlgXG4gKiB3aGljaCB3aWxsIGJlIGRlZmluZWQgYnkgdGhpcyBjb25zdHJ1Y3QgKENESyB3aWxsIGZhaWwgaWYgeW91IGRvKS5cbiAqXG4gKiBAZXhhbXBsZVxuICogY29uc3QgdXBsb2FkUm9sZSA9IG5ldyBHaXRodWJBY3Rpb25zUm9sZShzY29wZSwgXCJVcGxvYWRSb2xlXCIsIHtcbiAqICAgcHJvdmlkZXI6IEdpdGh1YkFjdGlvbnNJZGVudGl0eVByb3ZpZGVyLmZyb21BY2NvdW50KHNjb3BlLCBcIkdpdGh1YlByb3ZpZGVyXCIpLFxuICogICBvd25lcjogJ29jdG8tb3JnJyxcbiAqICAgcmVwbzogJ29jdG8tcmVwbycsXG4gKiAgIGZpbHRlcjogJ3JlZjpyZWZzL3RhZ3MvdionLFxuICogICByb2xlTmFtZTogJ015VXBsb2FkUm9sZScsXG4gKiB9KTtcbiAqXG4gKiBteUJ1Y2tldC5ncmFudFdyaXRlKHVwbG9hZFJvbGUpO1xuICovXG5leHBvcnQgY2xhc3MgR2l0aHViQWN0aW9uc1JvbGUgZXh0ZW5kcyBpYW0uUm9sZSB7XG4gIC8qKlxuICAgKiBFeHRyYWN0cyBwcm9wcyBnaXZlbiBmb3IgdGhlIGNyZWF0ZWQgSUFNIFJvbGUgQ29uc3RydWN0LlxuICAgKiBAcGFyYW0gcHJvcHMgZm9yIHRoZSBHaXRodWJBY3Rpb25zUm9sZVxuICAgKiBAcmV0dXJucyBmb3IgdGhlIElBTSBSb2xlXG4gICAqL1xuICBwcml2YXRlIHN0YXRpYyBleHRyYWN0Um9sZVByb3BzKFxuICAgIHByb3BzOiBHaXRodWJBY3Rpb25zUm9sZVByb3BzLFxuICApOiBpYW0uUm9sZVByb3BzIHtcbiAgICBjb25zdCBleHRyYWN0UHJvcHMgPSA8YW55PnByb3BzO1xuICAgIGRlbGV0ZSBleHRyYWN0UHJvcHMucHJvdmlkZXI7XG4gICAgZGVsZXRlIGV4dHJhY3RQcm9wcy5vd25lcjtcbiAgICBkZWxldGUgZXh0cmFjdFByb3BzLnJlcG87XG4gICAgZGVsZXRlIGV4dHJhY3RQcm9wcy5maWx0ZXI7XG4gICAgcmV0dXJuIGV4dHJhY3RQcm9wcztcbiAgfVxuXG4gIC8qKiBWYWxpZGF0ZXMgdGhlIEdpdGh1YiBvd25lciAob3JnYW5pemF0aW9uIG9yIHVzZXIpIG5hbWUuICovXG4gIHByaXZhdGUgc3RhdGljIHZhbGlkYXRlT3duZXIoc2NvcGU6IENvbnN0cnVjdCwgb3duZXI6IHN0cmluZyk6IHZvaWQge1xuICAgIGlmIChnaXRodWJVc2VybmFtZVJlZ2V4LnRlc3Qob3duZXIpICE9PSB0cnVlKSB7XG4gICAgICBjZGsuQW5ub3RhdGlvbnMub2Yoc2NvcGUpLmFkZEVycm9yKFxuICAgICAgICBgSW52YWxpZCBHaXRodWIgUmVwb3NpdG9yeSBPd25lciBcIiR7b3duZXJ9XCIuIE11c3Qgb25seSBjb250YWluIGFscGhhbnVtZXJpYyBjaGFyYWN0ZXJzIG9yIGh5cGhlbnMsIGNhbm5vdCBoYXZlIG11bHRpcGxlIGNvbnNlY3V0aXZlIGh5cGhlbnMsIGNhbm5vdCBiZWdpbiBvciBlbmQgd2l0aCBhIGh5cGVuIGFuZCBtYXhpbXVtIGxlbmdodCBpcyAzOSBjaGFyYWN0ZXJzLmAsXG4gICAgICApO1xuICAgIH1cbiAgfVxuXG4gIC8qKiBWYWxpZGF0ZXMgdGhlIEdpdGh1YiByZXBvc2l0b3J5IG5hbWUgKHdpdGhvdXQgb3duZXIpLiAqL1xuICBwcml2YXRlIHN0YXRpYyB2YWxpZGF0ZVJlcG8oc2NvcGU6IENvbnN0cnVjdCwgcmVwbzogc3RyaW5nKTogdm9pZCB7XG4gICAgaWYgKHJlcG8gPT09IFwiXCIpIHtcbiAgICAgIGNkay5Bbm5vdGF0aW9ucy5vZihzY29wZSkuYWRkRXJyb3IoXG4gICAgICAgIGBJbnZhbGlkIEdpdGh1YiBSZXBvc2l0b3J5IE5hbWUgXCIke3JlcG99XCIuIE1heSBub3QgYmUgZW1wdHkgc3RyaW5nLmAsXG4gICAgICApO1xuICAgIH1cbiAgfVxuXG4gIC8qKiBGb3JtYXRzIHRoZSBgc3ViYCB2YWx1ZSB1c2VkIGluIHRydXN0IHBvbGljeS4gKi9cbiAgcHJpdmF0ZSBzdGF0aWMgZm9ybWF0U3ViamVjdChwcm9wczogR2l0aHViQ29uZmlndXJhdGlvbik6IHN0cmluZyB7XG4gICAgY29uc3QgeyBvd25lciwgcmVwbywgZmlsdGVyID0gXCIqXCIgfSA9IHByb3BzO1xuICAgIHJldHVybiBgcmVwbzoke293bmVyfS8ke3JlcG99OiR7ZmlsdGVyfWA7XG4gIH1cblxuICAvKipcbiAgICogRGVmaW5lIGFuIElBTSBSb2xlIHRoYXQgY2FuIGJlIGFzc3VtZWQgYnkgR2l0aHViIEFjdGlvbnMgd29ya2Zsb3dcbiAgICogdmlhIEdpdGh1YiBPcGVuSUQgQ29ubmVjdCBJZGVudGl0eSBQcm92aWRlci5cbiAgICpcbiAgICogQmVzaWRlcyBgR2l0aHViQ29uZmlndXJhdGlvbmAsIHlvdSBtYXkgcGFzcyBpbiBhbnkgYGlhbS5Sb2xlUHJvcHNgIGV4Y2VwdCBgYXNzdW1lZEJ5YFxuICAgKiB3aGljaCB3aWxsIGJlIGRlZmluZWQgYnkgdGhpcyBjb25zdHJ1Y3QgKENESyB3aWxsIGZhaWwgaWYgeW91IGRvKS5cbiAgICpcbiAgICogQGV4YW1wbGVcbiAgICogY29uc3QgdXBsb2FkUm9sZSA9IG5ldyBHaXRodWJBY3Rpb25zUm9sZShzY29wZSwgXCJVcGxvYWRSb2xlXCIsIHtcbiAgICogICBwcm92aWRlcjogR2l0aHViQWN0aW9uc0lkZW50aXR5UHJvdmlkZXIuZnJvbUFjY291bnQoc2NvcGUsIFwiR2l0aHViUHJvdmlkZXJcIiksXG4gICAqICAgb3duZXI6ICdvY3RvLW9yZycsXG4gICAqICAgcmVwbzogJ29jdG8tcmVwbycsXG4gICAqICAgZmlsdGVyOiAncmVmOnJlZnMvdGFncy92KicsXG4gICAqICAgcm9sZU5hbWU6ICdNeVVwbG9hZFJvbGUnLFxuICAgKiB9KTtcbiAgICpcbiAgICogbXlCdWNrZXQuZ3JhbnRXcml0ZSh1cGxvYWRSb2xlKTtcbiAgICovXG4gIGNvbnN0cnVjdG9yKHNjb3BlOiBDb25zdHJ1Y3QsIGlkOiBzdHJpbmcsIHByb3BzOiBHaXRodWJBY3Rpb25zUm9sZVByb3BzKSB7XG4gICAgY29uc3QgeyBwcm92aWRlciwgb3duZXIsIHJlcG8gfSA9IHByb3BzO1xuXG4gICAgLy8gUGVyZm9ybSB2YWxpZGF0aW9uc1xuICAgIEdpdGh1YkFjdGlvbnNSb2xlLnZhbGlkYXRlT3duZXIoc2NvcGUsIG93bmVyKTtcbiAgICBHaXRodWJBY3Rpb25zUm9sZS52YWxpZGF0ZVJlcG8oc2NvcGUsIHJlcG8pO1xuXG4gICAgLy8gUHJlcGFyZSB2YWx1ZXNcbiAgICBjb25zdCBzdWJqZWN0ID0gR2l0aHViQWN0aW9uc1JvbGUuZm9ybWF0U3ViamVjdChwcm9wcyk7XG4gICAgY29uc3Qgcm9sZVByb3BzID0gR2l0aHViQWN0aW9uc1JvbGUuZXh0cmFjdFJvbGVQcm9wcyhwcm9wcyk7XG5cbiAgICAvLyBUaGUgYWN0dWFsIElBTSBSb2xlIGNyZWF0aW9uXG4gICAgc3VwZXIoc2NvcGUsIGlkLCB7XG4gICAgICAuLi5yb2xlUHJvcHMsXG4gICAgICBhc3N1bWVkQnk6IG5ldyBpYW0uV2ViSWRlbnRpdHlQcmluY2lwYWwocHJvdmlkZXIub2lkY1Byb3ZpZGVyQXJuLCB7XG4gICAgICAgIFN0cmluZ0xpa2U6IHtcbiAgICAgICAgICAvLyBPbmx5IGFsbG93IHNwZWNpZmllZCBzdWJqZWN0cyB0byBhc3N1bWUgdGhpcyByb2xlXG4gICAgICAgICAgW2Ake0dpdGh1YkFjdGlvbnNJZGVudGl0eVByb3ZpZGVyLmlzc3Vlcn06c3ViYF06IHN1YmplY3QsXG4gICAgICAgIH0sXG4gICAgICAgIFN0cmluZ0VxdWFsczoge1xuICAgICAgICAgIC8vIEF1ZGllbmNlIGlzIGFsd2F5cyBzdHMuYW1hem9uYXdzLmNvbSB3aXRoIEFXUyBvZmZpY2lhbCBHaXRodWIgQWN0aW9uXG4gICAgICAgICAgLy8gaHR0cHM6Ly9kb2NzLmdpdGh1Yi5jb20vZW4vYWN0aW9ucy9kZXBsb3ltZW50L3NlY3VyaXR5LWhhcmRlbmluZy15b3VyLWRlcGxveW1lbnRzL2NvbmZpZ3VyaW5nLW9wZW5pZC1jb25uZWN0LWluLWFtYXpvbi13ZWItc2VydmljZXMjYWRkaW5nLXRoZS1pZGVudGl0eS1wcm92aWRlci10by1hd3NcbiAgICAgICAgICBbYCR7R2l0aHViQWN0aW9uc0lkZW50aXR5UHJvdmlkZXIuaXNzdWVyfTphdWRgXTogXCJzdHMuYW1hem9uYXdzLmNvbVwiLFxuICAgICAgICB9LFxuICAgICAgfSksXG4gICAgfSk7XG4gIH1cbn1cbiJdfQ==
|
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
# Migration Test Harness
|
|
2
|
+
|
|
3
|
+
This folder contains an isolated CDK app that exercises a real migration flow for `aws-cdk-github-oidc`:
|
|
4
|
+
|
|
5
|
+
1. `aws-cdk-github-oidc@^2` with `aws-cdk-lib@2.220.0`
|
|
6
|
+
2. `aws-cdk-github-oidc@^3.1` with exact `aws-cdk-lib@2.237.0`
|
|
7
|
+
3. `aws-cdk-github-oidc@^4.2` with `aws-cdk-lib@^2.237.0`
|
|
8
|
+
|
|
9
|
+
All CDK commands are executed with `pnpm exec cdk ...`.
|
|
10
|
+
`pnpm-workspace.yaml` in this folder mirrors the root workspace policy values.
|
|
11
|
+
|
|
12
|
+
## Stack behavior by phase
|
|
13
|
+
|
|
14
|
+
The app reads `MIGRATION_PHASE` and switches provider implementation:
|
|
15
|
+
|
|
16
|
+
- `v2`: `new GithubActionsIdentityProvider(this, "GithubProvider")`
|
|
17
|
+
- `v3-retain`: same as `v2`, but with `removalPolicy: cdk.RemovalPolicy.RETAIN`
|
|
18
|
+
- `v4-lookup`: `GithubActionsIdentityProvider.fromAccount(this, "GithubProviderReference")`
|
|
19
|
+
- `v4-import`: switch back to `new GithubActionsIdentityProvider(this, "GithubProvider", { removalPolicy: RETAIN })`
|
|
20
|
+
|
|
21
|
+
## Setup
|
|
22
|
+
|
|
23
|
+
From this directory:
|
|
24
|
+
|
|
25
|
+
```sh
|
|
26
|
+
corepack use pnpm@10.19.0
|
|
27
|
+
pnpm install
|
|
28
|
+
```
|
|
29
|
+
|
|
30
|
+
## Run full migration flow
|
|
31
|
+
|
|
32
|
+
```sh
|
|
33
|
+
pnpm run test-migration
|
|
34
|
+
```
|
|
35
|
+
|
|
36
|
+
Run with automatic teardown (no prompt at the end):
|
|
37
|
+
|
|
38
|
+
```sh
|
|
39
|
+
bash ./scripts/run-migration.sh --teardown
|
|
40
|
+
```
|
|
41
|
+
|
|
42
|
+
Optional environment variable:
|
|
43
|
+
|
|
44
|
+
- `MIGRATION_STACK_NAME` (default: `AwsCdkGithubOidcMigrationTest`)
|
|
45
|
+
|
|
46
|
+
## What the script does
|
|
47
|
+
|
|
48
|
+
`scripts/run-migration.sh` performs the full sequence with deploy boundaries:
|
|
49
|
+
|
|
50
|
+
1. Install v2 + `aws-cdk-lib@2.220.0`, deploy `MIGRATION_PHASE=v2`
|
|
51
|
+
2. Upgrade to v3.1 + `aws-cdk-lib@2.237.0`, diff and deploy `MIGRATION_PHASE=v3-retain`
|
|
52
|
+
3. Upgrade to v4.2 + `aws-cdk-lib@^2.237.0`, diff and deploy `MIGRATION_PHASE=v4-lookup`
|
|
53
|
+
4. Set `MIGRATION_PHASE=v4-import`, dynamically fetch account id via:
|
|
54
|
+
- `aws sts get-caller-identity --query "Account" --output text`
|
|
55
|
+
5. Generate `./.tmp/resource-mapping.json` (not committed) and run:
|
|
56
|
+
- `pnpm exec cdk import <STACK_NAME> --resource-mapping ./.tmp/resource-mapping.json`
|
|
57
|
+
6. Run `pnpm exec cdk diff` for verification
|
|
58
|
+
|
|
59
|
+
After step 6, the script asks whether to delete the test stack.
|
|
60
|
+
- Reply `y` or `yes` to destroy it.
|
|
61
|
+
- Reply `n` to keep it deployed.
|
|
62
|
+
- Use `--teardown` (or `--teardown=true`) to destroy without prompting.
|
|
63
|
+
|
|
64
|
+
## Resource mapping
|
|
65
|
+
|
|
66
|
+
No AWS account IDs are stored in source control.
|
|
67
|
+
|
|
68
|
+
- Template file: `config/resource-mapping.template.json`
|
|
69
|
+
- Runtime file: `./.tmp/resource-mapping.json`
|
|
70
|
+
|
|
71
|
+
The generated ARN format is:
|
|
72
|
+
|
|
73
|
+
`arn:aws:iam::<ACCOUNT_ID>:oidc-provider/token.actions.githubusercontent.com`
|
|
74
|
+
|
|
75
|
+
## Reference
|
|
76
|
+
|
|
77
|
+
- [AWS CDK `cdk import` docs](https://docs.aws.amazon.com/cdk/v2/guide/ref-cli-cmd-import.html)
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import * as cdk from "aws-cdk-lib";
|
|
2
|
+
import { MigrationTestStack } from "../lib/migration-test-stack";
|
|
3
|
+
|
|
4
|
+
const app = new cdk.App();
|
|
5
|
+
const stackName =
|
|
6
|
+
process.env.MIGRATION_STACK_NAME ?? "AwsCdkGithubOidcMigrationTest";
|
|
7
|
+
|
|
8
|
+
new MigrationTestStack(app, stackName);
|
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
import * as cdk from "aws-cdk-lib";
|
|
2
|
+
import * as iam from "aws-cdk-lib/aws-iam";
|
|
3
|
+
import {
|
|
4
|
+
GithubActionsIdentityProvider,
|
|
5
|
+
GithubActionsRole,
|
|
6
|
+
IGithubActionsIdentityProvider,
|
|
7
|
+
} from "aws-cdk-github-oidc";
|
|
8
|
+
import { Construct } from "constructs";
|
|
9
|
+
|
|
10
|
+
type MigrationPhase = "v2" | "v3-retain" | "v4-lookup" | "v4-import";
|
|
11
|
+
|
|
12
|
+
function isMigrationPhase(value: string): value is MigrationPhase {
|
|
13
|
+
return (
|
|
14
|
+
value === "v2" ||
|
|
15
|
+
value === "v3-retain" ||
|
|
16
|
+
value === "v4-lookup" ||
|
|
17
|
+
value === "v4-import"
|
|
18
|
+
);
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
function resolvePhase(): MigrationPhase {
|
|
22
|
+
const phase = process.env.MIGRATION_PHASE ?? "v2";
|
|
23
|
+
if (isMigrationPhase(phase)) {
|
|
24
|
+
return phase;
|
|
25
|
+
}
|
|
26
|
+
throw new Error(
|
|
27
|
+
`Invalid MIGRATION_PHASE="${phase}". Valid values: v2, v3-retain, v4-lookup, v4-import.`,
|
|
28
|
+
);
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
function createProvider(
|
|
32
|
+
scope: Construct,
|
|
33
|
+
phase: MigrationPhase,
|
|
34
|
+
): IGithubActionsIdentityProvider {
|
|
35
|
+
if (phase === "v4-lookup") {
|
|
36
|
+
return GithubActionsIdentityProvider.fromAccount(
|
|
37
|
+
scope,
|
|
38
|
+
"GithubProviderReference",
|
|
39
|
+
);
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
const shouldRetain = phase === "v3-retain" || phase === "v4-import";
|
|
43
|
+
const ProviderCtor = GithubActionsIdentityProvider as unknown as new (
|
|
44
|
+
scope: Construct,
|
|
45
|
+
id: string,
|
|
46
|
+
props?: { removalPolicy?: cdk.RemovalPolicy },
|
|
47
|
+
) => IGithubActionsIdentityProvider;
|
|
48
|
+
return new ProviderCtor(scope, "GithubProvider", {
|
|
49
|
+
removalPolicy: shouldRetain ? cdk.RemovalPolicy.RETAIN : undefined,
|
|
50
|
+
});
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
export class MigrationTestStack extends cdk.Stack {
|
|
54
|
+
constructor(scope: Construct, id: string, props?: cdk.StackProps) {
|
|
55
|
+
super(scope, id, props);
|
|
56
|
+
|
|
57
|
+
const phase = resolvePhase();
|
|
58
|
+
const provider = createProvider(this, phase);
|
|
59
|
+
|
|
60
|
+
new GithubActionsRole(this, "GithubActionsRole", {
|
|
61
|
+
provider,
|
|
62
|
+
owner: "octo-org",
|
|
63
|
+
repo: "octo-repo",
|
|
64
|
+
filter: "ref:refs/heads/main",
|
|
65
|
+
roleName: "migration-test-github-actions-role",
|
|
66
|
+
description: "Role for validating aws-cdk-github-oidc migration flow",
|
|
67
|
+
managedPolicies: [
|
|
68
|
+
iam.ManagedPolicy.fromAwsManagedPolicyName("ReadOnlyAccess"),
|
|
69
|
+
],
|
|
70
|
+
});
|
|
71
|
+
|
|
72
|
+
new cdk.CfnOutput(this, "MigrationPhase", { value: phase });
|
|
73
|
+
new cdk.CfnOutput(this, "ProviderArn", {
|
|
74
|
+
value: `arn:${cdk.Aws.PARTITION}:iam::${cdk.Aws.ACCOUNT_ID}:oidc-provider/${GithubActionsIdentityProvider.issuer}`,
|
|
75
|
+
});
|
|
76
|
+
}
|
|
77
|
+
}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "migration-test",
|
|
3
|
+
"private": true,
|
|
4
|
+
"packageManager": "pnpm@10.19.0",
|
|
5
|
+
"scripts": {
|
|
6
|
+
"build": "tsc --noEmit",
|
|
7
|
+
"cdk": "pnpm exec cdk",
|
|
8
|
+
"synth": "pnpm exec cdk synth",
|
|
9
|
+
"diff": "pnpm exec cdk diff",
|
|
10
|
+
"deploy": "pnpm exec cdk deploy --require-approval never",
|
|
11
|
+
"test-migration": "bash ./scripts/run-migration.sh"
|
|
12
|
+
},
|
|
13
|
+
"dependencies": {
|
|
14
|
+
"aws-cdk-github-oidc": "^2.4.1",
|
|
15
|
+
"aws-cdk-lib": "2.220.0",
|
|
16
|
+
"constructs": "^10.3.0"
|
|
17
|
+
},
|
|
18
|
+
"devDependencies": {
|
|
19
|
+
"@types/node": "^20",
|
|
20
|
+
"aws-cdk": "^2",
|
|
21
|
+
"tsx": "^4",
|
|
22
|
+
"typescript": "^5"
|
|
23
|
+
}
|
|
24
|
+
}
|
|
@@ -0,0 +1,423 @@
|
|
|
1
|
+
lockfileVersion: '9.0'
|
|
2
|
+
|
|
3
|
+
settings:
|
|
4
|
+
autoInstallPeers: true
|
|
5
|
+
excludeLinksFromLockfile: false
|
|
6
|
+
|
|
7
|
+
importers:
|
|
8
|
+
|
|
9
|
+
.:
|
|
10
|
+
dependencies:
|
|
11
|
+
aws-cdk-github-oidc:
|
|
12
|
+
specifier: ^2.4.1
|
|
13
|
+
version: 2.4.1(aws-cdk-lib@2.220.0(constructs@10.6.0))(constructs@10.6.0)
|
|
14
|
+
aws-cdk-lib:
|
|
15
|
+
specifier: 2.220.0
|
|
16
|
+
version: 2.220.0(constructs@10.6.0)
|
|
17
|
+
constructs:
|
|
18
|
+
specifier: ^10.3.0
|
|
19
|
+
version: 10.6.0
|
|
20
|
+
devDependencies:
|
|
21
|
+
'@types/node':
|
|
22
|
+
specifier: ^20
|
|
23
|
+
version: 20.19.40
|
|
24
|
+
aws-cdk:
|
|
25
|
+
specifier: ^2
|
|
26
|
+
version: 2.1121.0
|
|
27
|
+
tsx:
|
|
28
|
+
specifier: ^4
|
|
29
|
+
version: 4.21.0
|
|
30
|
+
typescript:
|
|
31
|
+
specifier: ^5
|
|
32
|
+
version: 5.9.3
|
|
33
|
+
|
|
34
|
+
packages:
|
|
35
|
+
|
|
36
|
+
'@aws-cdk/asset-awscli-v1@2.2.242':
|
|
37
|
+
resolution: {integrity: sha512-4c1bAy2ISzcdKXYS1k4HYZsNrgiwbiDzj36ybwFVxEWZXVAP0dimQTCaB9fxu7sWzEjw3d+eaw6Fon+QTfTIpQ==}
|
|
38
|
+
|
|
39
|
+
'@aws-cdk/asset-node-proxy-agent-v6@2.1.1':
|
|
40
|
+
resolution: {integrity: sha512-We4bmHaowOPHr+IQR4/FyTGjRfjgBj4ICMjtqmJeBDWad3Q/6St12NT07leNtyuukv2qMhtSZJQorD8KpKTwRA==}
|
|
41
|
+
|
|
42
|
+
'@aws-cdk/cloud-assembly-schema@48.20.0':
|
|
43
|
+
resolution: {integrity: sha512-+eeiav9LY4wbF/EFuCt/vfvi/Zoxo8bf94PW5clbMraChEliq83w4TbRVy0jB9jE0v1ooFTtIjSQkowSPkfISg==}
|
|
44
|
+
engines: {node: '>= 18.0.0'}
|
|
45
|
+
bundledDependencies:
|
|
46
|
+
- jsonschema
|
|
47
|
+
- semver
|
|
48
|
+
|
|
49
|
+
'@esbuild/aix-ppc64@0.27.7':
|
|
50
|
+
resolution: {integrity: sha512-EKX3Qwmhz1eMdEJokhALr0YiD0lhQNwDqkPYyPhiSwKrh7/4KRjQc04sZ8db+5DVVnZ1LmbNDI1uAMPEUBnQPg==}
|
|
51
|
+
engines: {node: '>=18'}
|
|
52
|
+
cpu: [ppc64]
|
|
53
|
+
os: [aix]
|
|
54
|
+
|
|
55
|
+
'@esbuild/android-arm64@0.27.7':
|
|
56
|
+
resolution: {integrity: sha512-62dPZHpIXzvChfvfLJow3q5dDtiNMkwiRzPylSCfriLvZeq0a1bWChrGx/BbUbPwOrsWKMn8idSllklzBy+dgQ==}
|
|
57
|
+
engines: {node: '>=18'}
|
|
58
|
+
cpu: [arm64]
|
|
59
|
+
os: [android]
|
|
60
|
+
|
|
61
|
+
'@esbuild/android-arm@0.27.7':
|
|
62
|
+
resolution: {integrity: sha512-jbPXvB4Yj2yBV7HUfE2KHe4GJX51QplCN1pGbYjvsyCZbQmies29EoJbkEc+vYuU5o45AfQn37vZlyXy4YJ8RQ==}
|
|
63
|
+
engines: {node: '>=18'}
|
|
64
|
+
cpu: [arm]
|
|
65
|
+
os: [android]
|
|
66
|
+
|
|
67
|
+
'@esbuild/android-x64@0.27.7':
|
|
68
|
+
resolution: {integrity: sha512-x5VpMODneVDb70PYV2VQOmIUUiBtY3D3mPBG8NxVk5CogneYhkR7MmM3yR/uMdITLrC1ml/NV1rj4bMJuy9MCg==}
|
|
69
|
+
engines: {node: '>=18'}
|
|
70
|
+
cpu: [x64]
|
|
71
|
+
os: [android]
|
|
72
|
+
|
|
73
|
+
'@esbuild/darwin-arm64@0.27.7':
|
|
74
|
+
resolution: {integrity: sha512-5lckdqeuBPlKUwvoCXIgI2D9/ABmPq3Rdp7IfL70393YgaASt7tbju3Ac+ePVi3KDH6N2RqePfHnXkaDtY9fkw==}
|
|
75
|
+
engines: {node: '>=18'}
|
|
76
|
+
cpu: [arm64]
|
|
77
|
+
os: [darwin]
|
|
78
|
+
|
|
79
|
+
'@esbuild/darwin-x64@0.27.7':
|
|
80
|
+
resolution: {integrity: sha512-rYnXrKcXuT7Z+WL5K980jVFdvVKhCHhUwid+dDYQpH+qu+TefcomiMAJpIiC2EM3Rjtq0sO3StMV/+3w3MyyqQ==}
|
|
81
|
+
engines: {node: '>=18'}
|
|
82
|
+
cpu: [x64]
|
|
83
|
+
os: [darwin]
|
|
84
|
+
|
|
85
|
+
'@esbuild/freebsd-arm64@0.27.7':
|
|
86
|
+
resolution: {integrity: sha512-B48PqeCsEgOtzME2GbNM2roU29AMTuOIN91dsMO30t+Ydis3z/3Ngoj5hhnsOSSwNzS+6JppqWsuhTp6E82l2w==}
|
|
87
|
+
engines: {node: '>=18'}
|
|
88
|
+
cpu: [arm64]
|
|
89
|
+
os: [freebsd]
|
|
90
|
+
|
|
91
|
+
'@esbuild/freebsd-x64@0.27.7':
|
|
92
|
+
resolution: {integrity: sha512-jOBDK5XEjA4m5IJK3bpAQF9/Lelu/Z9ZcdhTRLf4cajlB+8VEhFFRjWgfy3M1O4rO2GQ/b2dLwCUGpiF/eATNQ==}
|
|
93
|
+
engines: {node: '>=18'}
|
|
94
|
+
cpu: [x64]
|
|
95
|
+
os: [freebsd]
|
|
96
|
+
|
|
97
|
+
'@esbuild/linux-arm64@0.27.7':
|
|
98
|
+
resolution: {integrity: sha512-RZPHBoxXuNnPQO9rvjh5jdkRmVizktkT7TCDkDmQ0W2SwHInKCAV95GRuvdSvA7w4VMwfCjUiPwDi0ZO6Nfe9A==}
|
|
99
|
+
engines: {node: '>=18'}
|
|
100
|
+
cpu: [arm64]
|
|
101
|
+
os: [linux]
|
|
102
|
+
|
|
103
|
+
'@esbuild/linux-arm@0.27.7':
|
|
104
|
+
resolution: {integrity: sha512-RkT/YXYBTSULo3+af8Ib0ykH8u2MBh57o7q/DAs3lTJlyVQkgQvlrPTnjIzzRPQyavxtPtfg0EopvDyIt0j1rA==}
|
|
105
|
+
engines: {node: '>=18'}
|
|
106
|
+
cpu: [arm]
|
|
107
|
+
os: [linux]
|
|
108
|
+
|
|
109
|
+
'@esbuild/linux-ia32@0.27.7':
|
|
110
|
+
resolution: {integrity: sha512-GA48aKNkyQDbd3KtkplYWT102C5sn/EZTY4XROkxONgruHPU72l+gW+FfF8tf2cFjeHaRbWpOYa/uRBz/Xq1Pg==}
|
|
111
|
+
engines: {node: '>=18'}
|
|
112
|
+
cpu: [ia32]
|
|
113
|
+
os: [linux]
|
|
114
|
+
|
|
115
|
+
'@esbuild/linux-loong64@0.27.7':
|
|
116
|
+
resolution: {integrity: sha512-a4POruNM2oWsD4WKvBSEKGIiWQF8fZOAsycHOt6JBpZ+JN2n2JH9WAv56SOyu9X5IqAjqSIPTaJkqN8F7XOQ5Q==}
|
|
117
|
+
engines: {node: '>=18'}
|
|
118
|
+
cpu: [loong64]
|
|
119
|
+
os: [linux]
|
|
120
|
+
|
|
121
|
+
'@esbuild/linux-mips64el@0.27.7':
|
|
122
|
+
resolution: {integrity: sha512-KabT5I6StirGfIz0FMgl1I+R1H73Gp0ofL9A3nG3i/cYFJzKHhouBV5VWK1CSgKvVaG4q1RNpCTR2LuTVB3fIw==}
|
|
123
|
+
engines: {node: '>=18'}
|
|
124
|
+
cpu: [mips64el]
|
|
125
|
+
os: [linux]
|
|
126
|
+
|
|
127
|
+
'@esbuild/linux-ppc64@0.27.7':
|
|
128
|
+
resolution: {integrity: sha512-gRsL4x6wsGHGRqhtI+ifpN/vpOFTQtnbsupUF5R5YTAg+y/lKelYR1hXbnBdzDjGbMYjVJLJTd2OFmMewAgwlQ==}
|
|
129
|
+
engines: {node: '>=18'}
|
|
130
|
+
cpu: [ppc64]
|
|
131
|
+
os: [linux]
|
|
132
|
+
|
|
133
|
+
'@esbuild/linux-riscv64@0.27.7':
|
|
134
|
+
resolution: {integrity: sha512-hL25LbxO1QOngGzu2U5xeXtxXcW+/GvMN3ejANqXkxZ/opySAZMrc+9LY/WyjAan41unrR3YrmtTsUpwT66InQ==}
|
|
135
|
+
engines: {node: '>=18'}
|
|
136
|
+
cpu: [riscv64]
|
|
137
|
+
os: [linux]
|
|
138
|
+
|
|
139
|
+
'@esbuild/linux-s390x@0.27.7':
|
|
140
|
+
resolution: {integrity: sha512-2k8go8Ycu1Kb46vEelhu1vqEP+UeRVj2zY1pSuPdgvbd5ykAw82Lrro28vXUrRmzEsUV0NzCf54yARIK8r0fdw==}
|
|
141
|
+
engines: {node: '>=18'}
|
|
142
|
+
cpu: [s390x]
|
|
143
|
+
os: [linux]
|
|
144
|
+
|
|
145
|
+
'@esbuild/linux-x64@0.27.7':
|
|
146
|
+
resolution: {integrity: sha512-hzznmADPt+OmsYzw1EE33ccA+HPdIqiCRq7cQeL1Jlq2gb1+OyWBkMCrYGBJ+sxVzve2ZJEVeePbLM2iEIZSxA==}
|
|
147
|
+
engines: {node: '>=18'}
|
|
148
|
+
cpu: [x64]
|
|
149
|
+
os: [linux]
|
|
150
|
+
|
|
151
|
+
'@esbuild/netbsd-arm64@0.27.7':
|
|
152
|
+
resolution: {integrity: sha512-b6pqtrQdigZBwZxAn1UpazEisvwaIDvdbMbmrly7cDTMFnw/+3lVxxCTGOrkPVnsYIosJJXAsILG9XcQS+Yu6w==}
|
|
153
|
+
engines: {node: '>=18'}
|
|
154
|
+
cpu: [arm64]
|
|
155
|
+
os: [netbsd]
|
|
156
|
+
|
|
157
|
+
'@esbuild/netbsd-x64@0.27.7':
|
|
158
|
+
resolution: {integrity: sha512-OfatkLojr6U+WN5EDYuoQhtM+1xco+/6FSzJJnuWiUw5eVcicbyK3dq5EeV/QHT1uy6GoDhGbFpprUiHUYggrw==}
|
|
159
|
+
engines: {node: '>=18'}
|
|
160
|
+
cpu: [x64]
|
|
161
|
+
os: [netbsd]
|
|
162
|
+
|
|
163
|
+
'@esbuild/openbsd-arm64@0.27.7':
|
|
164
|
+
resolution: {integrity: sha512-AFuojMQTxAz75Fo8idVcqoQWEHIXFRbOc1TrVcFSgCZtQfSdc1RXgB3tjOn/krRHENUB4j00bfGjyl2mJrU37A==}
|
|
165
|
+
engines: {node: '>=18'}
|
|
166
|
+
cpu: [arm64]
|
|
167
|
+
os: [openbsd]
|
|
168
|
+
|
|
169
|
+
'@esbuild/openbsd-x64@0.27.7':
|
|
170
|
+
resolution: {integrity: sha512-+A1NJmfM8WNDv5CLVQYJ5PshuRm/4cI6WMZRg1by1GwPIQPCTs1GLEUHwiiQGT5zDdyLiRM/l1G0Pv54gvtKIg==}
|
|
171
|
+
engines: {node: '>=18'}
|
|
172
|
+
cpu: [x64]
|
|
173
|
+
os: [openbsd]
|
|
174
|
+
|
|
175
|
+
'@esbuild/openharmony-arm64@0.27.7':
|
|
176
|
+
resolution: {integrity: sha512-+KrvYb/C8zA9CU/g0sR6w2RBw7IGc5J2BPnc3dYc5VJxHCSF1yNMxTV5LQ7GuKteQXZtspjFbiuW5/dOj7H4Yw==}
|
|
177
|
+
engines: {node: '>=18'}
|
|
178
|
+
cpu: [arm64]
|
|
179
|
+
os: [openharmony]
|
|
180
|
+
|
|
181
|
+
'@esbuild/sunos-x64@0.27.7':
|
|
182
|
+
resolution: {integrity: sha512-ikktIhFBzQNt/QDyOL580ti9+5mL/YZeUPKU2ivGtGjdTYoqz6jObj6nOMfhASpS4GU4Q/Clh1QtxWAvcYKamA==}
|
|
183
|
+
engines: {node: '>=18'}
|
|
184
|
+
cpu: [x64]
|
|
185
|
+
os: [sunos]
|
|
186
|
+
|
|
187
|
+
'@esbuild/win32-arm64@0.27.7':
|
|
188
|
+
resolution: {integrity: sha512-7yRhbHvPqSpRUV7Q20VuDwbjW5kIMwTHpptuUzV+AA46kiPze5Z7qgt6CLCK3pWFrHeNfDd1VKgyP4O+ng17CA==}
|
|
189
|
+
engines: {node: '>=18'}
|
|
190
|
+
cpu: [arm64]
|
|
191
|
+
os: [win32]
|
|
192
|
+
|
|
193
|
+
'@esbuild/win32-ia32@0.27.7':
|
|
194
|
+
resolution: {integrity: sha512-SmwKXe6VHIyZYbBLJrhOoCJRB/Z1tckzmgTLfFYOfpMAx63BJEaL9ExI8x7v0oAO3Zh6D/Oi1gVxEYr5oUCFhw==}
|
|
195
|
+
engines: {node: '>=18'}
|
|
196
|
+
cpu: [ia32]
|
|
197
|
+
os: [win32]
|
|
198
|
+
|
|
199
|
+
'@esbuild/win32-x64@0.27.7':
|
|
200
|
+
resolution: {integrity: sha512-56hiAJPhwQ1R4i+21FVF7V8kSD5zZTdHcVuRFMW0hn753vVfQN8xlx4uOPT4xoGH0Z/oVATuR82AiqSTDIpaHg==}
|
|
201
|
+
engines: {node: '>=18'}
|
|
202
|
+
cpu: [x64]
|
|
203
|
+
os: [win32]
|
|
204
|
+
|
|
205
|
+
'@types/node@20.19.40':
|
|
206
|
+
resolution: {integrity: sha512-xxx6M2IpSTnnKcR0cMvIiohkiCx20/oRPtWGbenFygKCGl3zqUzdNjQ/1V4solq1LU+dgv0nQzeGOuqkqZGg0Q==}
|
|
207
|
+
|
|
208
|
+
aws-cdk-github-oidc@2.4.1:
|
|
209
|
+
resolution: {integrity: sha512-zKQYPGyf5f6APG76OpOxW6P7KGY/fC6VhN1ZullxySSu6RroUH9VtVl+cJ8hYes5XvEE/ZDpx2h2fPtNwZrcVQ==}
|
|
210
|
+
engines: {node: '>= 16.20.0'}
|
|
211
|
+
peerDependencies:
|
|
212
|
+
aws-cdk-lib: ^2.89.0
|
|
213
|
+
constructs: ^10.0.0
|
|
214
|
+
|
|
215
|
+
aws-cdk-lib@2.220.0:
|
|
216
|
+
resolution: {integrity: sha512-mOEyPP1ymWiLnSE0xFxWjG00E1DQ5wtbcgKUmtGjxyNdoG/Qret1nDLqE43YGZEbwca43WO/a2LDuSL6+hN7Lg==}
|
|
217
|
+
engines: {node: '>= 18.0.0'}
|
|
218
|
+
peerDependencies:
|
|
219
|
+
constructs: ^10.0.0
|
|
220
|
+
bundledDependencies:
|
|
221
|
+
- '@balena/dockerignore'
|
|
222
|
+
- case
|
|
223
|
+
- fs-extra
|
|
224
|
+
- ignore
|
|
225
|
+
- jsonschema
|
|
226
|
+
- minimatch
|
|
227
|
+
- punycode
|
|
228
|
+
- semver
|
|
229
|
+
- table
|
|
230
|
+
- yaml
|
|
231
|
+
- mime-types
|
|
232
|
+
|
|
233
|
+
aws-cdk@2.1121.0:
|
|
234
|
+
resolution: {integrity: sha512-cG7CHt/SytYTfwrK+BUNQpqmS1dwhjt8z6ExKL6GK4n+8/6ZCwFzxlZWA/jUd2+Y9xPc+Q8cLKfMqGmgxEXbkg==}
|
|
235
|
+
engines: {node: '>= 18.0.0'}
|
|
236
|
+
hasBin: true
|
|
237
|
+
|
|
238
|
+
constructs@10.6.0:
|
|
239
|
+
resolution: {integrity: sha512-TxHOnBO5zMo/G76ykzGF/wMpEHu257TbWiIxP9K0Yv/+t70UzgBQiTqjkAsWOPC6jW91DzJI0+ehQV6xDRNBuQ==}
|
|
240
|
+
|
|
241
|
+
esbuild@0.27.7:
|
|
242
|
+
resolution: {integrity: sha512-IxpibTjyVnmrIQo5aqNpCgoACA/dTKLTlhMHihVHhdkxKyPO1uBBthumT0rdHmcsk9uMonIWS0m4FljWzILh3w==}
|
|
243
|
+
engines: {node: '>=18'}
|
|
244
|
+
hasBin: true
|
|
245
|
+
|
|
246
|
+
fsevents@2.3.3:
|
|
247
|
+
resolution: {integrity: sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==}
|
|
248
|
+
engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0}
|
|
249
|
+
os: [darwin]
|
|
250
|
+
|
|
251
|
+
get-tsconfig@4.14.0:
|
|
252
|
+
resolution: {integrity: sha512-yTb+8DXzDREzgvYmh6s9vHsSVCHeC0G3PI5bEXNBHtmshPnO+S5O7qgLEOn0I5QvMy6kpZN8K1NKGyilLb93wA==}
|
|
253
|
+
|
|
254
|
+
resolve-pkg-maps@1.0.0:
|
|
255
|
+
resolution: {integrity: sha512-seS2Tj26TBVOC2NIc2rOe2y2ZO7efxITtLZcGSOnHHNOQ7CkiUBfw0Iw2ck6xkIhPwLhKNLS8BO+hEpngQlqzw==}
|
|
256
|
+
|
|
257
|
+
tsx@4.21.0:
|
|
258
|
+
resolution: {integrity: sha512-5C1sg4USs1lfG0GFb2RLXsdpXqBSEhAaA/0kPL01wxzpMqLILNxIxIOKiILz+cdg/pLnOUxFYOR5yhHU666wbw==}
|
|
259
|
+
engines: {node: '>=18.0.0'}
|
|
260
|
+
hasBin: true
|
|
261
|
+
|
|
262
|
+
typescript@5.9.3:
|
|
263
|
+
resolution: {integrity: sha512-jl1vZzPDinLr9eUt3J/t7V6FgNEw9QjvBPdysz9KfQDD41fQrC2Y4vKQdiaUpFT4bXlb1RHhLpp8wtm6M5TgSw==}
|
|
264
|
+
engines: {node: '>=14.17'}
|
|
265
|
+
hasBin: true
|
|
266
|
+
|
|
267
|
+
undici-types@6.21.0:
|
|
268
|
+
resolution: {integrity: sha512-iwDZqg0QAGrg9Rav5H4n0M64c3mkR59cJ6wQp+7C4nI0gsmExaedaYLNO44eT4AtBBwjbTiGPMlt2Md0T9H9JQ==}
|
|
269
|
+
|
|
270
|
+
snapshots:
|
|
271
|
+
|
|
272
|
+
'@aws-cdk/asset-awscli-v1@2.2.242': {}
|
|
273
|
+
|
|
274
|
+
'@aws-cdk/asset-node-proxy-agent-v6@2.1.1': {}
|
|
275
|
+
|
|
276
|
+
'@aws-cdk/cloud-assembly-schema@48.20.0': {}
|
|
277
|
+
|
|
278
|
+
'@esbuild/aix-ppc64@0.27.7':
|
|
279
|
+
optional: true
|
|
280
|
+
|
|
281
|
+
'@esbuild/android-arm64@0.27.7':
|
|
282
|
+
optional: true
|
|
283
|
+
|
|
284
|
+
'@esbuild/android-arm@0.27.7':
|
|
285
|
+
optional: true
|
|
286
|
+
|
|
287
|
+
'@esbuild/android-x64@0.27.7':
|
|
288
|
+
optional: true
|
|
289
|
+
|
|
290
|
+
'@esbuild/darwin-arm64@0.27.7':
|
|
291
|
+
optional: true
|
|
292
|
+
|
|
293
|
+
'@esbuild/darwin-x64@0.27.7':
|
|
294
|
+
optional: true
|
|
295
|
+
|
|
296
|
+
'@esbuild/freebsd-arm64@0.27.7':
|
|
297
|
+
optional: true
|
|
298
|
+
|
|
299
|
+
'@esbuild/freebsd-x64@0.27.7':
|
|
300
|
+
optional: true
|
|
301
|
+
|
|
302
|
+
'@esbuild/linux-arm64@0.27.7':
|
|
303
|
+
optional: true
|
|
304
|
+
|
|
305
|
+
'@esbuild/linux-arm@0.27.7':
|
|
306
|
+
optional: true
|
|
307
|
+
|
|
308
|
+
'@esbuild/linux-ia32@0.27.7':
|
|
309
|
+
optional: true
|
|
310
|
+
|
|
311
|
+
'@esbuild/linux-loong64@0.27.7':
|
|
312
|
+
optional: true
|
|
313
|
+
|
|
314
|
+
'@esbuild/linux-mips64el@0.27.7':
|
|
315
|
+
optional: true
|
|
316
|
+
|
|
317
|
+
'@esbuild/linux-ppc64@0.27.7':
|
|
318
|
+
optional: true
|
|
319
|
+
|
|
320
|
+
'@esbuild/linux-riscv64@0.27.7':
|
|
321
|
+
optional: true
|
|
322
|
+
|
|
323
|
+
'@esbuild/linux-s390x@0.27.7':
|
|
324
|
+
optional: true
|
|
325
|
+
|
|
326
|
+
'@esbuild/linux-x64@0.27.7':
|
|
327
|
+
optional: true
|
|
328
|
+
|
|
329
|
+
'@esbuild/netbsd-arm64@0.27.7':
|
|
330
|
+
optional: true
|
|
331
|
+
|
|
332
|
+
'@esbuild/netbsd-x64@0.27.7':
|
|
333
|
+
optional: true
|
|
334
|
+
|
|
335
|
+
'@esbuild/openbsd-arm64@0.27.7':
|
|
336
|
+
optional: true
|
|
337
|
+
|
|
338
|
+
'@esbuild/openbsd-x64@0.27.7':
|
|
339
|
+
optional: true
|
|
340
|
+
|
|
341
|
+
'@esbuild/openharmony-arm64@0.27.7':
|
|
342
|
+
optional: true
|
|
343
|
+
|
|
344
|
+
'@esbuild/sunos-x64@0.27.7':
|
|
345
|
+
optional: true
|
|
346
|
+
|
|
347
|
+
'@esbuild/win32-arm64@0.27.7':
|
|
348
|
+
optional: true
|
|
349
|
+
|
|
350
|
+
'@esbuild/win32-ia32@0.27.7':
|
|
351
|
+
optional: true
|
|
352
|
+
|
|
353
|
+
'@esbuild/win32-x64@0.27.7':
|
|
354
|
+
optional: true
|
|
355
|
+
|
|
356
|
+
'@types/node@20.19.40':
|
|
357
|
+
dependencies:
|
|
358
|
+
undici-types: 6.21.0
|
|
359
|
+
|
|
360
|
+
aws-cdk-github-oidc@2.4.1(aws-cdk-lib@2.220.0(constructs@10.6.0))(constructs@10.6.0):
|
|
361
|
+
dependencies:
|
|
362
|
+
aws-cdk-lib: 2.220.0(constructs@10.6.0)
|
|
363
|
+
constructs: 10.6.0
|
|
364
|
+
|
|
365
|
+
aws-cdk-lib@2.220.0(constructs@10.6.0):
|
|
366
|
+
dependencies:
|
|
367
|
+
'@aws-cdk/asset-awscli-v1': 2.2.242
|
|
368
|
+
'@aws-cdk/asset-node-proxy-agent-v6': 2.1.1
|
|
369
|
+
'@aws-cdk/cloud-assembly-schema': 48.20.0
|
|
370
|
+
constructs: 10.6.0
|
|
371
|
+
|
|
372
|
+
aws-cdk@2.1121.0: {}
|
|
373
|
+
|
|
374
|
+
constructs@10.6.0: {}
|
|
375
|
+
|
|
376
|
+
esbuild@0.27.7:
|
|
377
|
+
optionalDependencies:
|
|
378
|
+
'@esbuild/aix-ppc64': 0.27.7
|
|
379
|
+
'@esbuild/android-arm': 0.27.7
|
|
380
|
+
'@esbuild/android-arm64': 0.27.7
|
|
381
|
+
'@esbuild/android-x64': 0.27.7
|
|
382
|
+
'@esbuild/darwin-arm64': 0.27.7
|
|
383
|
+
'@esbuild/darwin-x64': 0.27.7
|
|
384
|
+
'@esbuild/freebsd-arm64': 0.27.7
|
|
385
|
+
'@esbuild/freebsd-x64': 0.27.7
|
|
386
|
+
'@esbuild/linux-arm': 0.27.7
|
|
387
|
+
'@esbuild/linux-arm64': 0.27.7
|
|
388
|
+
'@esbuild/linux-ia32': 0.27.7
|
|
389
|
+
'@esbuild/linux-loong64': 0.27.7
|
|
390
|
+
'@esbuild/linux-mips64el': 0.27.7
|
|
391
|
+
'@esbuild/linux-ppc64': 0.27.7
|
|
392
|
+
'@esbuild/linux-riscv64': 0.27.7
|
|
393
|
+
'@esbuild/linux-s390x': 0.27.7
|
|
394
|
+
'@esbuild/linux-x64': 0.27.7
|
|
395
|
+
'@esbuild/netbsd-arm64': 0.27.7
|
|
396
|
+
'@esbuild/netbsd-x64': 0.27.7
|
|
397
|
+
'@esbuild/openbsd-arm64': 0.27.7
|
|
398
|
+
'@esbuild/openbsd-x64': 0.27.7
|
|
399
|
+
'@esbuild/openharmony-arm64': 0.27.7
|
|
400
|
+
'@esbuild/sunos-x64': 0.27.7
|
|
401
|
+
'@esbuild/win32-arm64': 0.27.7
|
|
402
|
+
'@esbuild/win32-ia32': 0.27.7
|
|
403
|
+
'@esbuild/win32-x64': 0.27.7
|
|
404
|
+
|
|
405
|
+
fsevents@2.3.3:
|
|
406
|
+
optional: true
|
|
407
|
+
|
|
408
|
+
get-tsconfig@4.14.0:
|
|
409
|
+
dependencies:
|
|
410
|
+
resolve-pkg-maps: 1.0.0
|
|
411
|
+
|
|
412
|
+
resolve-pkg-maps@1.0.0: {}
|
|
413
|
+
|
|
414
|
+
tsx@4.21.0:
|
|
415
|
+
dependencies:
|
|
416
|
+
esbuild: 0.27.7
|
|
417
|
+
get-tsconfig: 4.14.0
|
|
418
|
+
optionalDependencies:
|
|
419
|
+
fsevents: 2.3.3
|
|
420
|
+
|
|
421
|
+
typescript@5.9.3: {}
|
|
422
|
+
|
|
423
|
+
undici-types@6.21.0: {}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
# Copied from repository root pnpm-workspace.yaml to keep identical pnpm policies
|
|
2
|
+
# while keeping migration-test dependency changes isolated.
|
|
3
|
+
|
|
4
|
+
minimumReleaseAge: 4320
|
|
5
|
+
minimumReleaseAgeExclude:
|
|
6
|
+
- "@alma-cdk/construct-library"
|
|
7
|
+
- "aws-cdk-github-oidc"
|
|
8
|
+
trustPolicy: no-downgrade
|
|
9
|
+
trustPolicyIgnoreAfter: 20160
|
|
10
|
+
trustPolicyExclude:
|
|
11
|
+
- jsii@5.9.33
|
|
12
|
+
- jsii@5.9.35
|
|
13
|
+
nodeLinker: hoisted
|
|
14
|
+
resolutionMode: highest
|
|
15
|
+
strictDepBuilds: true
|
|
16
|
+
onlyBuiltDependencies:
|
|
17
|
+
- unrs-resolver
|
|
18
|
+
- lefthook
|
|
19
|
+
- esbuild
|
|
20
|
+
blockExoticSubdeps: true
|
|
21
|
+
overrides: {}
|
|
@@ -0,0 +1,179 @@
|
|
|
1
|
+
#!/usr/bin/env bash
|
|
2
|
+
set -euo pipefail
|
|
3
|
+
|
|
4
|
+
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
|
5
|
+
PROJECT_DIR="$(cd "${SCRIPT_DIR}/.." && pwd)"
|
|
6
|
+
cd "${PROJECT_DIR}"
|
|
7
|
+
|
|
8
|
+
AUTO_TEARDOWN="false"
|
|
9
|
+
|
|
10
|
+
usage() {
|
|
11
|
+
cat <<EOF
|
|
12
|
+
Usage: ./scripts/run-migration.sh [--teardown[=true|false]]
|
|
13
|
+
|
|
14
|
+
Options:
|
|
15
|
+
--teardown Perform teardown automatically without asking.
|
|
16
|
+
--teardown=true Same as --teardown.
|
|
17
|
+
--teardown=false Skip automatic teardown and ask at the end.
|
|
18
|
+
-h, --help Show this help message.
|
|
19
|
+
EOF
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
while (($# > 0)); do
|
|
23
|
+
case "$1" in
|
|
24
|
+
--teardown)
|
|
25
|
+
if (($# > 1)) && [[ "$2" =~ ^(true|false)$ ]]; then
|
|
26
|
+
AUTO_TEARDOWN="$2"
|
|
27
|
+
shift 2
|
|
28
|
+
else
|
|
29
|
+
AUTO_TEARDOWN="true"
|
|
30
|
+
shift
|
|
31
|
+
fi
|
|
32
|
+
;;
|
|
33
|
+
--teardown=*)
|
|
34
|
+
AUTO_TEARDOWN="${1#*=}"
|
|
35
|
+
if [[ "${AUTO_TEARDOWN}" != "true" && "${AUTO_TEARDOWN}" != "false" ]]; then
|
|
36
|
+
echo "Invalid value for --teardown: ${AUTO_TEARDOWN} (expected true|false)" >&2
|
|
37
|
+
exit 1
|
|
38
|
+
fi
|
|
39
|
+
shift
|
|
40
|
+
;;
|
|
41
|
+
-h | --help)
|
|
42
|
+
usage
|
|
43
|
+
exit 0
|
|
44
|
+
;;
|
|
45
|
+
*)
|
|
46
|
+
echo "Unknown argument: $1" >&2
|
|
47
|
+
usage >&2
|
|
48
|
+
exit 1
|
|
49
|
+
;;
|
|
50
|
+
esac
|
|
51
|
+
done
|
|
52
|
+
|
|
53
|
+
STACK_NAME="${MIGRATION_STACK_NAME:-AwsCdkGithubOidcMigrationTest}"
|
|
54
|
+
TMP_DIR="${PROJECT_DIR}/.tmp"
|
|
55
|
+
RESOURCE_MAPPING_PATH="${TMP_DIR}/resource-mapping.json"
|
|
56
|
+
OIDC_ISSUER="token.actions.githubusercontent.com"
|
|
57
|
+
ACCOUNT_ID="$(aws sts get-caller-identity --query "Account" --output text)"
|
|
58
|
+
CALLER_ARN="$(aws sts get-caller-identity --query "Arn" --output text)"
|
|
59
|
+
AWS_PARTITION="$(echo "${CALLER_ARN}" | cut -d: -f2)"
|
|
60
|
+
OIDC_PROVIDER_ARN="arn:${AWS_PARTITION}:iam::${ACCOUNT_ID}:oidc-provider/${OIDC_ISSUER}"
|
|
61
|
+
|
|
62
|
+
cleanup_tmp_artifacts() {
|
|
63
|
+
rm -f "${RESOURCE_MAPPING_PATH}"
|
|
64
|
+
}
|
|
65
|
+
|
|
66
|
+
trap cleanup_tmp_artifacts EXIT
|
|
67
|
+
|
|
68
|
+
verify_stack_status() {
|
|
69
|
+
local context="$1"
|
|
70
|
+
shift
|
|
71
|
+
local status
|
|
72
|
+
status="$(aws cloudformation describe-stacks --stack-name "${STACK_NAME}" --query "Stacks[0].StackStatus" --output text)"
|
|
73
|
+
|
|
74
|
+
for expected in "$@"; do
|
|
75
|
+
if [[ "${status}" == "${expected}" ]]; then
|
|
76
|
+
echo "Verified stack status after ${context}: ${status}"
|
|
77
|
+
return 0
|
|
78
|
+
fi
|
|
79
|
+
done
|
|
80
|
+
|
|
81
|
+
echo "Unexpected stack status after ${context}: ${status}" >&2
|
|
82
|
+
echo "Expected one of: $*" >&2
|
|
83
|
+
exit 1
|
|
84
|
+
}
|
|
85
|
+
|
|
86
|
+
verify_oidc_provider_present() {
|
|
87
|
+
local context="$1"
|
|
88
|
+
local listed_arn
|
|
89
|
+
listed_arn="$(
|
|
90
|
+
aws iam list-open-id-connect-providers \
|
|
91
|
+
--query "OpenIDConnectProviderList[?Arn=='${OIDC_PROVIDER_ARN}'].Arn | [0]" \
|
|
92
|
+
--output text
|
|
93
|
+
)"
|
|
94
|
+
|
|
95
|
+
if [[ "${listed_arn}" != "${OIDC_PROVIDER_ARN}" ]]; then
|
|
96
|
+
echo "OIDC provider not found after ${context}: ${OIDC_PROVIDER_ARN}" >&2
|
|
97
|
+
exit 1
|
|
98
|
+
fi
|
|
99
|
+
|
|
100
|
+
local provider_url
|
|
101
|
+
provider_url="$(
|
|
102
|
+
aws iam get-open-id-connect-provider \
|
|
103
|
+
--open-id-connect-provider-arn "${OIDC_PROVIDER_ARN}" \
|
|
104
|
+
--query "Url" \
|
|
105
|
+
--output text
|
|
106
|
+
)"
|
|
107
|
+
|
|
108
|
+
if [[ "${provider_url}" != "${OIDC_ISSUER}" ]]; then
|
|
109
|
+
echo "OIDC provider URL mismatch after ${context}: expected ${OIDC_ISSUER}, got ${provider_url}" >&2
|
|
110
|
+
exit 1
|
|
111
|
+
fi
|
|
112
|
+
|
|
113
|
+
echo "Verified OIDC provider after ${context}: ${OIDC_PROVIDER_ARN}"
|
|
114
|
+
}
|
|
115
|
+
|
|
116
|
+
teardown_stack() {
|
|
117
|
+
echo "==> Teardown: Destroying stack ${STACK_NAME}"
|
|
118
|
+
MIGRATION_PHASE=v4-import MIGRATION_STACK_NAME="${STACK_NAME}" pnpm exec cdk destroy "${STACK_NAME}" --force
|
|
119
|
+
}
|
|
120
|
+
|
|
121
|
+
echo "Using stack: ${STACK_NAME}"
|
|
122
|
+
echo "Working directory: ${PROJECT_DIR}"
|
|
123
|
+
echo "Using account: ${ACCOUNT_ID}"
|
|
124
|
+
echo "Using OIDC provider ARN: ${OIDC_PROVIDER_ARN}"
|
|
125
|
+
echo "Auto teardown: ${AUTO_TEARDOWN}"
|
|
126
|
+
|
|
127
|
+
mkdir -p "${TMP_DIR}"
|
|
128
|
+
|
|
129
|
+
echo "==> Phase 1: Install v2 + aws-cdk-lib@2.220.0"
|
|
130
|
+
pnpm add aws-cdk-github-oidc@^2 aws-cdk-lib@2.220.0
|
|
131
|
+
MIGRATION_PHASE=v2 MIGRATION_STACK_NAME="${STACK_NAME}" pnpm exec cdk deploy "${STACK_NAME}" --require-approval never
|
|
132
|
+
verify_stack_status "phase 1 deploy" CREATE_COMPLETE UPDATE_COMPLETE
|
|
133
|
+
verify_oidc_provider_present "phase 1 deploy"
|
|
134
|
+
|
|
135
|
+
echo "==> Phase 2: Upgrade to v3.1 + aws-cdk-lib@2.237.0 with RETAIN"
|
|
136
|
+
pnpm add aws-cdk-github-oidc@^3.1 aws-cdk-lib@2.237.0
|
|
137
|
+
MIGRATION_PHASE=v3-retain MIGRATION_STACK_NAME="${STACK_NAME}" pnpm exec cdk diff "${STACK_NAME}"
|
|
138
|
+
MIGRATION_PHASE=v3-retain MIGRATION_STACK_NAME="${STACK_NAME}" pnpm exec cdk deploy "${STACK_NAME}" --require-approval never
|
|
139
|
+
verify_stack_status "phase 2 deploy" CREATE_COMPLETE UPDATE_COMPLETE
|
|
140
|
+
verify_oidc_provider_present "phase 2 deploy"
|
|
141
|
+
|
|
142
|
+
echo "==> Phase 3: Upgrade to v4.2 + aws-cdk-lib@^2.237.0 and lookup provider"
|
|
143
|
+
pnpm add aws-cdk-github-oidc@^4.2 aws-cdk-lib@^2.237.0
|
|
144
|
+
MIGRATION_PHASE=v4-lookup MIGRATION_STACK_NAME="${STACK_NAME}" pnpm exec cdk diff "${STACK_NAME}"
|
|
145
|
+
MIGRATION_PHASE=v4-lookup MIGRATION_STACK_NAME="${STACK_NAME}" pnpm exec cdk deploy "${STACK_NAME}" --require-approval never
|
|
146
|
+
verify_stack_status "phase 3 deploy" CREATE_COMPLETE UPDATE_COMPLETE
|
|
147
|
+
verify_oidc_provider_present "phase 3 deploy"
|
|
148
|
+
|
|
149
|
+
echo "==> Phase 4: Switch back to managed provider and import"
|
|
150
|
+
cat > "${RESOURCE_MAPPING_PATH}" <<EOF
|
|
151
|
+
{
|
|
152
|
+
"GithubProvider1CDE27EB": {
|
|
153
|
+
"Arn": "${OIDC_PROVIDER_ARN}"
|
|
154
|
+
}
|
|
155
|
+
}
|
|
156
|
+
EOF
|
|
157
|
+
|
|
158
|
+
echo "Running non-interactive import..."
|
|
159
|
+
printf "y\ny\n" | MIGRATION_PHASE=v4-import MIGRATION_STACK_NAME="${STACK_NAME}" pnpm exec cdk import "${STACK_NAME}" --resource-mapping "${RESOURCE_MAPPING_PATH}" --force --execute true --require-approval never
|
|
160
|
+
verify_stack_status "phase 4 import" IMPORT_COMPLETE
|
|
161
|
+
verify_oidc_provider_present "phase 4 import"
|
|
162
|
+
|
|
163
|
+
echo "==> Phase 5: Post-import verification"
|
|
164
|
+
MIGRATION_PHASE=v4-import MIGRATION_STACK_NAME="${STACK_NAME}" pnpm exec cdk diff "${STACK_NAME}"
|
|
165
|
+
verify_oidc_provider_present "phase 5 post-import diff"
|
|
166
|
+
|
|
167
|
+
echo "Migration test flow completed successfully."
|
|
168
|
+
|
|
169
|
+
if [[ "${AUTO_TEARDOWN}" == "true" ]]; then
|
|
170
|
+
teardown_stack
|
|
171
|
+
else
|
|
172
|
+
read -r -p "Teardown test stack now? (y/n) " teardown_answer
|
|
173
|
+
teardown_answer="$(printf '%s' "${teardown_answer}" | tr '[:upper:]' '[:lower:]')"
|
|
174
|
+
if [[ "${teardown_answer}" == "y" || "${teardown_answer}" == "yes" ]]; then
|
|
175
|
+
teardown_stack
|
|
176
|
+
else
|
|
177
|
+
echo "Skipping teardown. Stack remains deployed: ${STACK_NAME}"
|
|
178
|
+
fi
|
|
179
|
+
fi
|