@onivoro/server-aws-redshift 22.0.7 → 22.0.8
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/dist/cjs/lib/server-aws-redshift.module.js +1 -1
- package/dist/cjs/lib/services/redshift.service.d.ts +4 -0
- package/dist/cjs/lib/services/redshift.service.js +29 -0
- package/dist/esm/lib/server-aws-redshift.module.js +1 -1
- package/dist/esm/lib/services/redshift.service.d.ts +4 -0
- package/dist/esm/lib/services/redshift.service.js +29 -0
- package/dist/types/lib/services/redshift.service.d.ts +4 -0
- package/package.json +1 -1
|
@@ -31,7 +31,7 @@ let ServerAwsRedshiftDataModule = ServerAwsRedshiftDataModule_1 = class ServerAw
|
|
|
31
31
|
},
|
|
32
32
|
{
|
|
33
33
|
provide: client_redshift_serverless_1.RedshiftServerlessClient,
|
|
34
|
-
useFactory: () =>
|
|
34
|
+
useFactory: () => redshiftServerlessClient
|
|
35
35
|
? redshiftServerlessClient
|
|
36
36
|
: redshiftServerlessClient = new client_redshift_serverless_1.RedshiftServerlessClient(from(config))
|
|
37
37
|
},
|
|
@@ -36,4 +36,8 @@ export declare class RedshiftDataService {
|
|
|
36
36
|
database: string;
|
|
37
37
|
workgroupName: string;
|
|
38
38
|
}, Sql: string): Promise<(string | number)[][]>;
|
|
39
|
+
getAssociatedIAmRolesByWorkgroup(_: {
|
|
40
|
+
database: string;
|
|
41
|
+
workgroupName: string;
|
|
42
|
+
}): Promise<(string | number)[][]>;
|
|
39
43
|
}
|
|
@@ -193,6 +193,35 @@ let RedshiftDataService = class RedshiftDataService {
|
|
|
193
193
|
throw error;
|
|
194
194
|
}
|
|
195
195
|
}
|
|
196
|
+
async getAssociatedIAmRolesByWorkgroup(_) {
|
|
197
|
+
try {
|
|
198
|
+
const query = `
|
|
199
|
+
SELECT
|
|
200
|
+
g.groname as role_name,
|
|
201
|
+
u.usename as member_name,
|
|
202
|
+
g.grosysid as role_id,
|
|
203
|
+
g.groowner as owner_id,
|
|
204
|
+
CASE WHEN pg_has_role(u.usename, g.groname, 'MEMBER') THEN true ELSE false END as is_member
|
|
205
|
+
FROM pg_group g
|
|
206
|
+
LEFT JOIN pg_user u ON u.usesysid = ANY(g.grolist)
|
|
207
|
+
WHERE EXISTS (
|
|
208
|
+
SELECT 1
|
|
209
|
+
FROM svv_redshift_databases d
|
|
210
|
+
WHERE d.database_name = current_database()
|
|
211
|
+
AND d.workgroup_name = $1
|
|
212
|
+
)
|
|
213
|
+
ORDER BY g.groname, u.usename;
|
|
214
|
+
`;
|
|
215
|
+
return await this.query(_, query);
|
|
216
|
+
}
|
|
217
|
+
catch (error) {
|
|
218
|
+
if (error instanceof Error) {
|
|
219
|
+
console.error(`Error getting workgroup roles: ${error.message}`);
|
|
220
|
+
throw error;
|
|
221
|
+
}
|
|
222
|
+
throw new Error('An unknown error occurred');
|
|
223
|
+
}
|
|
224
|
+
}
|
|
196
225
|
};
|
|
197
226
|
exports.RedshiftDataService = RedshiftDataService;
|
|
198
227
|
exports.RedshiftDataService = RedshiftDataService = __decorate([
|
|
@@ -31,7 +31,7 @@ let ServerAwsRedshiftDataModule = ServerAwsRedshiftDataModule_1 = class ServerAw
|
|
|
31
31
|
},
|
|
32
32
|
{
|
|
33
33
|
provide: client_redshift_serverless_1.RedshiftServerlessClient,
|
|
34
|
-
useFactory: () =>
|
|
34
|
+
useFactory: () => redshiftServerlessClient
|
|
35
35
|
? redshiftServerlessClient
|
|
36
36
|
: redshiftServerlessClient = new client_redshift_serverless_1.RedshiftServerlessClient(from(config))
|
|
37
37
|
},
|
|
@@ -36,4 +36,8 @@ export declare class RedshiftDataService {
|
|
|
36
36
|
database: string;
|
|
37
37
|
workgroupName: string;
|
|
38
38
|
}, Sql: string): Promise<(string | number)[][]>;
|
|
39
|
+
getAssociatedIAmRolesByWorkgroup(_: {
|
|
40
|
+
database: string;
|
|
41
|
+
workgroupName: string;
|
|
42
|
+
}): Promise<(string | number)[][]>;
|
|
39
43
|
}
|
|
@@ -193,6 +193,35 @@ let RedshiftDataService = class RedshiftDataService {
|
|
|
193
193
|
throw error;
|
|
194
194
|
}
|
|
195
195
|
}
|
|
196
|
+
async getAssociatedIAmRolesByWorkgroup(_) {
|
|
197
|
+
try {
|
|
198
|
+
const query = `
|
|
199
|
+
SELECT
|
|
200
|
+
g.groname as role_name,
|
|
201
|
+
u.usename as member_name,
|
|
202
|
+
g.grosysid as role_id,
|
|
203
|
+
g.groowner as owner_id,
|
|
204
|
+
CASE WHEN pg_has_role(u.usename, g.groname, 'MEMBER') THEN true ELSE false END as is_member
|
|
205
|
+
FROM pg_group g
|
|
206
|
+
LEFT JOIN pg_user u ON u.usesysid = ANY(g.grolist)
|
|
207
|
+
WHERE EXISTS (
|
|
208
|
+
SELECT 1
|
|
209
|
+
FROM svv_redshift_databases d
|
|
210
|
+
WHERE d.database_name = current_database()
|
|
211
|
+
AND d.workgroup_name = $1
|
|
212
|
+
)
|
|
213
|
+
ORDER BY g.groname, u.usename;
|
|
214
|
+
`;
|
|
215
|
+
return await this.query(_, query);
|
|
216
|
+
}
|
|
217
|
+
catch (error) {
|
|
218
|
+
if (error instanceof Error) {
|
|
219
|
+
console.error(`Error getting workgroup roles: ${error.message}`);
|
|
220
|
+
throw error;
|
|
221
|
+
}
|
|
222
|
+
throw new Error('An unknown error occurred');
|
|
223
|
+
}
|
|
224
|
+
}
|
|
196
225
|
};
|
|
197
226
|
exports.RedshiftDataService = RedshiftDataService;
|
|
198
227
|
exports.RedshiftDataService = RedshiftDataService = __decorate([
|
|
@@ -36,4 +36,8 @@ export declare class RedshiftDataService {
|
|
|
36
36
|
database: string;
|
|
37
37
|
workgroupName: string;
|
|
38
38
|
}, Sql: string): Promise<(string | number)[][]>;
|
|
39
|
+
getAssociatedIAmRolesByWorkgroup(_: {
|
|
40
|
+
database: string;
|
|
41
|
+
workgroupName: string;
|
|
42
|
+
}): Promise<(string | number)[][]>;
|
|
39
43
|
}
|