@jaypie/constructs 1.1.48 → 1.1.50

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (45) hide show
  1. package/dist/cjs/JaypieApiGateway.d.ts +1 -0
  2. package/dist/cjs/JaypieBucketQueuedLambda.d.ts +4 -19
  3. package/dist/cjs/JaypieDnsRecord.d.ts +45 -0
  4. package/dist/cjs/JaypieGitHubDeployRole.d.ts +15 -0
  5. package/dist/cjs/JaypieHostedZone.d.ts +26 -4
  6. package/dist/cjs/JaypieLambda.d.ts +1 -1
  7. package/dist/cjs/JaypieQueuedLambda.d.ts +1 -1
  8. package/dist/cjs/JaypieSsoPermissions.d.ts +95 -0
  9. package/dist/cjs/JaypieSsoSyncApplication.d.ts +27 -0
  10. package/dist/cjs/JaypieWebDeploymentBucket.d.ts +1 -0
  11. package/dist/cjs/__tests__/JaypieSsoSyncApplication.spec.d.ts +1 -0
  12. package/dist/cjs/helpers/__tests__/resolveDatadogForwarderFunction.spec.d.ts +1 -0
  13. package/dist/cjs/helpers/__tests__/resolveDatadogLoggingDestination.spec.d.ts +1 -0
  14. package/dist/cjs/helpers/index.d.ts +2 -0
  15. package/dist/cjs/helpers/resolveDatadogForwarderFunction.d.ts +7 -0
  16. package/dist/cjs/helpers/resolveDatadogLoggingDestination.d.ts +4 -0
  17. package/dist/cjs/index.cjs +599 -308
  18. package/dist/cjs/index.cjs.map +1 -1
  19. package/dist/cjs/index.d.ts +6 -2
  20. package/dist/esm/JaypieApiGateway.d.ts +1 -0
  21. package/dist/esm/JaypieBucketQueuedLambda.d.ts +4 -19
  22. package/dist/esm/JaypieDnsRecord.d.ts +45 -0
  23. package/dist/esm/JaypieGitHubDeployRole.d.ts +15 -0
  24. package/dist/esm/JaypieHostedZone.d.ts +26 -4
  25. package/dist/esm/JaypieLambda.d.ts +1 -1
  26. package/dist/esm/JaypieQueuedLambda.d.ts +1 -1
  27. package/dist/esm/JaypieSsoPermissions.d.ts +95 -0
  28. package/dist/esm/JaypieSsoSyncApplication.d.ts +27 -0
  29. package/dist/esm/JaypieWebDeploymentBucket.d.ts +1 -0
  30. package/dist/esm/__tests__/JaypieDnsRecord.spec.d.ts +1 -0
  31. package/dist/esm/__tests__/JaypieSsoPermissions.spec.d.ts +1 -0
  32. package/dist/esm/__tests__/JaypieSsoSyncApplication.spec.d.ts +1 -0
  33. package/dist/esm/helpers/__tests__/resolveDatadogForwarderFunction.spec.d.ts +1 -0
  34. package/dist/esm/helpers/__tests__/resolveDatadogLoggingDestination.spec.d.ts +1 -0
  35. package/dist/esm/helpers/index.d.ts +2 -0
  36. package/dist/esm/helpers/resolveDatadogForwarderFunction.d.ts +7 -0
  37. package/dist/esm/helpers/resolveDatadogLoggingDestination.d.ts +4 -0
  38. package/dist/esm/index.d.ts +6 -2
  39. package/dist/esm/index.js +592 -309
  40. package/dist/esm/index.js.map +1 -1
  41. package/package.json +3 -2
  42. package/dist/cjs/JaypieSsoGroups.d.ts +0 -121
  43. package/dist/esm/JaypieSsoGroups.d.ts +0 -121
  44. /package/dist/cjs/__tests__/{JaypieSsoGroups.spec.d.ts → JaypieDnsRecord.spec.d.ts} +0 -0
  45. /package/dist/{esm/__tests__/JaypieSsoGroups.spec.d.ts → cjs/__tests__/JaypieSsoPermissions.spec.d.ts} +0 -0
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@jaypie/constructs",
3
- "version": "1.1.48",
3
+ "version": "1.1.50",
4
4
  "description": "CDK constructs for Jaypie applications",
5
5
  "license": "MIT",
6
6
  "author": "Finlayson Studio",
@@ -27,6 +27,7 @@
27
27
  },
28
28
  "dependencies": {
29
29
  "@jaypie/cdk": "^1.1.13",
30
+ "@jaypie/errors": "^1.1.5",
30
31
  "aws-cdk-lib": "^2.216.0",
31
32
  "constructs": "^10.4.2",
32
33
  "datadog-cdk-constructs-v2": "^3.2.0"
@@ -47,5 +48,5 @@
47
48
  "publishConfig": {
48
49
  "access": "public"
49
50
  },
50
- "gitHead": "8b4e9cd66d90be510f7970a01c19407c08ec1fb3"
51
+ "gitHead": "bf576dceb3b91415c7556d3b0a0cdeb5ef8c766c"
51
52
  }
@@ -1,121 +0,0 @@
1
- import { Construct } from "constructs";
2
- import * as sso from "aws-cdk-lib/aws-sso";
3
- /**
4
- * Account categories for SSO group assignments
5
- */
6
- export interface JaypieSsoAccountMap {
7
- development: string[];
8
- management: string[];
9
- operations: string[];
10
- production: string[];
11
- sandbox: string[];
12
- security: string[];
13
- stage: string[];
14
- }
15
- /**
16
- * Mapping of group types to Google Workspace group GUIDs
17
- */
18
- export interface JaypieSsoGroupMap {
19
- administrators: string;
20
- analysts: string;
21
- developers: string;
22
- }
23
- /**
24
- * IAM Policy Statement structure for inline policies
25
- */
26
- export interface PolicyStatement {
27
- Effect: "Allow" | "Deny";
28
- Action: string[] | string;
29
- Resource: string[] | string;
30
- Condition?: Record<string, unknown>;
31
- }
32
- /**
33
- * Properties for the JaypieSsoGroups construct
34
- */
35
- export interface JaypieSsoGroupsProps {
36
- /**
37
- * ARN of the IAM Identity Center instance
38
- */
39
- instanceArn: string;
40
- /**
41
- * Mapping of account categories to AWS account IDs
42
- */
43
- accountMap: JaypieSsoAccountMap;
44
- /**
45
- * Mapping of group types to Google Workspace group GUIDs
46
- */
47
- groupMap: JaypieSsoGroupMap;
48
- /**
49
- * Additional inline policy statements to append to each group's permission set
50
- * Each group can have its own set of policy statements that will be merged
51
- * with the default policies.
52
- */
53
- inlinePolicyStatements?: {
54
- administrators?: PolicyStatement[];
55
- analysts?: PolicyStatement[];
56
- developers?: PolicyStatement[];
57
- };
58
- }
59
- /**
60
- * Permission set types with corresponding AWS managed policies
61
- */
62
- export declare enum PermissionSetType {
63
- ADMINISTRATOR = "Administrator",
64
- ANALYST = "Analyst",
65
- DEVELOPER = "Developer"
66
- }
67
- /**
68
- * Construct to simplify AWS SSO group management.
69
- * This construct encapsulates the complexity of creating permission sets
70
- * and assigning them to groups across multiple AWS accounts.
71
- */
72
- export declare class JaypieSsoGroups extends Construct {
73
- private readonly permissionSets;
74
- private readonly instanceArn;
75
- private readonly props;
76
- constructor(scope: Construct, id: string, props: JaypieSsoGroupsProps);
77
- /**
78
- * Creates the Administrator permission set with AdministratorAccess policy
79
- * and billing access
80
- */
81
- private createAdministratorPermissionSet;
82
- /**
83
- * Creates the Analyst permission set with ReadOnlyAccess policy
84
- * and limited write access
85
- */
86
- private createAnalystPermissionSet;
87
- /**
88
- * Creates the Developer permission set with SystemAdministrator policy
89
- * and expanded write access
90
- */
91
- private createDeveloperPermissionSet;
92
- /**
93
- * Gets the permission set for the specified type
94
- */
95
- getPermissionSet(type: PermissionSetType): sso.CfnPermissionSet;
96
- /**
97
- * Merges default inline policies with additional user-provided policy statements
98
- *
99
- * @param defaultPolicy - The default policy object with Version and Statement properties
100
- * @param additionalStatements - Optional additional policy statements to merge
101
- * @returns The merged policy object
102
- */
103
- private mergeInlinePolicies;
104
- /**
105
- * Creates assignments between permission sets, groups, and accounts
106
- * based on the provided configuration
107
- */
108
- private createPermissionSetAssignments;
109
- /**
110
- * Assigns Administrator permissions to appropriate accounts
111
- */
112
- private assignAdministratorPermissions;
113
- /**
114
- * Assigns Analyst permissions to appropriate accounts
115
- */
116
- private assignAnalystPermissions;
117
- /**
118
- * Assigns Developer permissions to appropriate accounts
119
- */
120
- private assignDeveloperPermissions;
121
- }
@@ -1,121 +0,0 @@
1
- import { Construct } from "constructs";
2
- import * as sso from "aws-cdk-lib/aws-sso";
3
- /**
4
- * Account categories for SSO group assignments
5
- */
6
- export interface JaypieSsoAccountMap {
7
- development: string[];
8
- management: string[];
9
- operations: string[];
10
- production: string[];
11
- sandbox: string[];
12
- security: string[];
13
- stage: string[];
14
- }
15
- /**
16
- * Mapping of group types to Google Workspace group GUIDs
17
- */
18
- export interface JaypieSsoGroupMap {
19
- administrators: string;
20
- analysts: string;
21
- developers: string;
22
- }
23
- /**
24
- * IAM Policy Statement structure for inline policies
25
- */
26
- export interface PolicyStatement {
27
- Effect: "Allow" | "Deny";
28
- Action: string[] | string;
29
- Resource: string[] | string;
30
- Condition?: Record<string, unknown>;
31
- }
32
- /**
33
- * Properties for the JaypieSsoGroups construct
34
- */
35
- export interface JaypieSsoGroupsProps {
36
- /**
37
- * ARN of the IAM Identity Center instance
38
- */
39
- instanceArn: string;
40
- /**
41
- * Mapping of account categories to AWS account IDs
42
- */
43
- accountMap: JaypieSsoAccountMap;
44
- /**
45
- * Mapping of group types to Google Workspace group GUIDs
46
- */
47
- groupMap: JaypieSsoGroupMap;
48
- /**
49
- * Additional inline policy statements to append to each group's permission set
50
- * Each group can have its own set of policy statements that will be merged
51
- * with the default policies.
52
- */
53
- inlinePolicyStatements?: {
54
- administrators?: PolicyStatement[];
55
- analysts?: PolicyStatement[];
56
- developers?: PolicyStatement[];
57
- };
58
- }
59
- /**
60
- * Permission set types with corresponding AWS managed policies
61
- */
62
- export declare enum PermissionSetType {
63
- ADMINISTRATOR = "Administrator",
64
- ANALYST = "Analyst",
65
- DEVELOPER = "Developer"
66
- }
67
- /**
68
- * Construct to simplify AWS SSO group management.
69
- * This construct encapsulates the complexity of creating permission sets
70
- * and assigning them to groups across multiple AWS accounts.
71
- */
72
- export declare class JaypieSsoGroups extends Construct {
73
- private readonly permissionSets;
74
- private readonly instanceArn;
75
- private readonly props;
76
- constructor(scope: Construct, id: string, props: JaypieSsoGroupsProps);
77
- /**
78
- * Creates the Administrator permission set with AdministratorAccess policy
79
- * and billing access
80
- */
81
- private createAdministratorPermissionSet;
82
- /**
83
- * Creates the Analyst permission set with ReadOnlyAccess policy
84
- * and limited write access
85
- */
86
- private createAnalystPermissionSet;
87
- /**
88
- * Creates the Developer permission set with SystemAdministrator policy
89
- * and expanded write access
90
- */
91
- private createDeveloperPermissionSet;
92
- /**
93
- * Gets the permission set for the specified type
94
- */
95
- getPermissionSet(type: PermissionSetType): sso.CfnPermissionSet;
96
- /**
97
- * Merges default inline policies with additional user-provided policy statements
98
- *
99
- * @param defaultPolicy - The default policy object with Version and Statement properties
100
- * @param additionalStatements - Optional additional policy statements to merge
101
- * @returns The merged policy object
102
- */
103
- private mergeInlinePolicies;
104
- /**
105
- * Creates assignments between permission sets, groups, and accounts
106
- * based on the provided configuration
107
- */
108
- private createPermissionSetAssignments;
109
- /**
110
- * Assigns Administrator permissions to appropriate accounts
111
- */
112
- private assignAdministratorPermissions;
113
- /**
114
- * Assigns Analyst permissions to appropriate accounts
115
- */
116
- private assignAnalystPermissions;
117
- /**
118
- * Assigns Developer permissions to appropriate accounts
119
- */
120
- private assignDeveloperPermissions;
121
- }