Skip to content

Commit a891341

Browse files
authored
Merge pull request #1779 from rocket-admin/backend_frontend_update_s3_widget_params
Backend frontend update s3 widget params
2 parents e405bb5 + bce58fe commit a891341

13 files changed

Lines changed: 50 additions & 50 deletions

File tree

backend/src/entities/s3-widget/application/data-structures/s3-widget-params.ds.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ export interface BucketWidgetParams {
66
prefix?: string;
77
region?: string;
88
account_id?: string;
9-
access_key_id_secret_name: string;
10-
secret_access_key_secret_name: string;
9+
access_key_id: string;
10+
access_key: string;
1111
type?: 'file' | 'image';
1212
}

backend/src/entities/s3-widget/use-cases/get-s3-file-url.use.case.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -81,12 +81,12 @@ export class GetS3FileUrlUseCase
8181
}
8282

8383
const accessKeySecret = await this._dbContext.userSecretRepository.findSecretBySlugAndCompanyId(
84-
params.access_key_id_secret_name,
84+
params.access_key_id,
8585
user.company.id,
8686
);
8787

8888
const secretKeySecret = await this._dbContext.userSecretRepository.findSecretBySlugAndCompanyId(
89-
params.secret_access_key_secret_name,
89+
params.access_key,
9090
user.company.id,
9191
);
9292

backend/src/entities/s3-widget/use-cases/get-s3-upload-url.use.case.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -44,12 +44,12 @@ export class GetS3UploadUrlUseCase
4444
typeof widget.widget_params === 'string' ? JSON5.parse(widget.widget_params) : widget.widget_params;
4545

4646
const accessKeySecret = await this._dbContext.userSecretRepository.findSecretBySlugAndCompanyId(
47-
params.access_key_id_secret_name,
47+
params.access_key_id,
4848
user.company.id,
4949
);
5050

5151
const secretKeySecret = await this._dbContext.userSecretRepository.findSecretBySlugAndCompanyId(
52-
params.secret_access_key_secret_name,
52+
params.access_key,
5353
user.company.id,
5454
);
5555

backend/src/entities/widget/utils/validate-create-widgets-ds.ts

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,11 @@
11
import JSON5 from 'json5';
2-
import { BucketProviderEnum } from '../../s3-widget/application/data-structures/bucket-provider.enum.js';
32
import { EncryptionAlgorithmEnum } from '../../../enums/encryption-algorithm.enum.js';
43
import { WidgetTypeEnum } from '../../../enums/widget-type.enum.js';
54
import { Messages } from '../../../exceptions/text/messages.js';
65
import { Constants } from '../../../helpers/constants/constants.js';
76
import { getPropertyValueByDescriptor } from '../../../helpers/get-property-value-by-descriptor.js';
87
import { ConnectionEntity } from '../../connection/connection.entity.js';
8+
import { BucketProviderEnum } from '../../s3-widget/application/data-structures/bucket-provider.enum.js';
99
import { ForeignKeyDSInfo } from '../../table/table-datastructures.js';
1010
import { findTableFieldsUtil } from '../../table/utils/find-table-fields.util.js';
1111
import { findTablesInConnectionUtil } from '../../table/utils/find-tables-in-connection.util.js';
@@ -103,11 +103,11 @@ export async function validateCreateWidgetsDs(
103103
if (!widget_params.bucket) {
104104
errors.push(Messages.WIDGET_REQUIRED_PARAMETER_MISSING('bucket'));
105105
}
106-
if (!widget_params.access_key_id_secret_name) {
107-
errors.push(Messages.WIDGET_REQUIRED_PARAMETER_MISSING('access_key_id_secret_name'));
106+
if (!widget_params.access_key_id) {
107+
errors.push(Messages.WIDGET_REQUIRED_PARAMETER_MISSING('access_key_id'));
108108
}
109-
if (!widget_params.secret_access_key_secret_name) {
110-
errors.push(Messages.WIDGET_REQUIRED_PARAMETER_MISSING('secret_access_key_secret_name'));
109+
if (!widget_params.access_key) {
110+
errors.push(Messages.WIDGET_REQUIRED_PARAMETER_MISSING('access_key'));
111111
}
112112
if (
113113
widget_params.provider &&

backend/test/ava-tests/non-saas-tests/non-saas-s3-widget-e2e.test.ts

Lines changed: 12 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -91,8 +91,8 @@ async function setupS3WidgetTestEnvironment(
9191
bucket: 'test-bucket',
9292
prefix: 'uploads',
9393
region: 'us-east-1',
94-
access_key_id_secret_name: 'test-aws-access-key',
95-
secret_access_key_secret_name: 'test-aws-secret-key',
94+
access_key_id: 'test-aws-access-key',
95+
access_key: 'test-aws-secret-key',
9696
});
9797

9898
const widgetDto = {
@@ -596,8 +596,8 @@ test.serial(`${currentTest} - widget creation succeeds with provider 'digitaloce
596596
provider: 'digitalocean',
597597
bucket: 'test-bucket',
598598
region: 'fra1',
599-
access_key_id_secret_name: 'do-key',
600-
secret_access_key_secret_name: 'do-secret',
599+
access_key_id: 'do-key',
600+
access_key: 'do-secret',
601601
});
602602

603603
const response = await request(app.getHttpServer())
@@ -628,8 +628,8 @@ test.serial(`${currentTest} - widget creation rejected with unsupported provider
628628
provider: 'not-a-real-provider',
629629
bucket: 'test-bucket',
630630
region: 'us-east-1',
631-
access_key_id_secret_name: 'k',
632-
secret_access_key_secret_name: 's',
631+
access_key_id: 'k',
632+
access_key: 's',
633633
});
634634

635635
const response = await request(app.getHttpServer())
@@ -660,8 +660,8 @@ test.serial(`${currentTest} - widget creation rejected when cloudflare-r2 missin
660660
provider: 'cloudflare-r2',
661661
bucket: 'test-bucket',
662662
region: 'auto',
663-
access_key_id_secret_name: 'k',
664-
secret_access_key_secret_name: 's',
663+
access_key_id: 'k',
664+
access_key: 's',
665665
});
666666

667667
const response = await request(app.getHttpServer())
@@ -693,8 +693,8 @@ test.serial(`${currentTest} - widget creation succeeds with cloudflare-r2 and ac
693693
bucket: 'test-bucket',
694694
region: 'auto',
695695
account_id: 'abc123def456',
696-
access_key_id_secret_name: 'k',
697-
secret_access_key_secret_name: 's',
696+
access_key_id: 'k',
697+
access_key: 's',
698698
});
699699

700700
const response = await request(app.getHttpServer())
@@ -718,13 +718,13 @@ test.serial(`${currentTest} - widget creation succeeds with cloudflare-r2 and ac
718718
t.is(response.status, 201);
719719
});
720720

721-
test.serial(`${currentTest} - widget creation rejected when access_key_id_secret_name missing`, async (t) => {
721+
test.serial(`${currentTest} - widget creation rejected when access_key_id missing`, async (t) => {
722722
const { token, connectionId, testTableName } = await createConnectionAndTableWithS3Field();
723723

724724
const widgetParams = JSON.stringify({
725725
bucket: 'test-bucket',
726726
region: 'us-east-1',
727-
secret_access_key_secret_name: 's',
727+
access_key: 's',
728728
});
729729

730730
const response = await request(app.getHttpServer())

frontend/src/app/components/dashboard/db-table-view/db-table-widgets/db-table-widgets.component.ts

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -281,8 +281,8 @@ export class DbTableWidgetsComponent implements OnInit {
281281
// region: Region for the bucket (default: us-east-1; for cloudflare-r2 use "auto")
282282
// account_id: Cloudflare account ID. Required when provider is "cloudflare-r2".
283283
// type: "file" (default) - accepts all file types, "image" - accepts only images
284-
// access_key_id_secret_name: Unique identifier of the secret containing the Access Key ID
285-
// secret_access_key_secret_name: Unique identifier of the secret containing the Secret Access Key
284+
// access_key_id: Unique identifier of the secret containing the Access Key ID
285+
// access_key: Unique identifier of the secret containing the Secret Access Key
286286
//
287287
// ⚠️ IMPORTANT: DO NOT INCLUDE BUCKET SECRETS DIRECTLY IN WIDGET SETTINGS!
288288
// Store your credentials as secrets in Rocketadmin and reference them here by their unique identifiers to ensure security and prevent exposure of sensitive information.
@@ -293,8 +293,8 @@ export class DbTableWidgetsComponent implements OnInit {
293293
"prefix": "uploads/",
294294
"region": "us-east-1",
295295
"type": "file",
296-
"access_key_id_secret_name": "bucket-access-key-id",
297-
"secret_access_key_secret_name": "bucket-secret-access-key"
296+
"access_key_id": "COMPANY-SECRET/bucket-access-key-id",
297+
"access_key": "COMPANY-SECRET/bucket-access-key"
298298
}
299299
`,
300300
};

frontend/src/app/components/ui-components/record-edit-fields/s3/s3.component.spec.ts

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -22,8 +22,8 @@ describe('S3EditComponent', () => {
2222
bucket: 'test-bucket',
2323
prefix: 'uploads/',
2424
region: 'us-east-1',
25-
access_key_id_secret_name: 'bucket-key',
26-
secret_access_key_secret_name: 'bucket-secret',
25+
access_key_id: 'COMPANY-SECRET/bucket-access-key-id',
26+
access_key: 'COMPANY-SECRET/bucket-access-key',
2727
},
2828
name: 'Document Upload',
2929
description: 'Upload documents to S3',
@@ -37,8 +37,8 @@ describe('S3EditComponent', () => {
3737
bucket: 'test-bucket',
3838
prefix: 'uploads/',
3939
region: 'us-east-1',
40-
access_key_id_secret_name: 'bucket-key',
41-
secret_access_key_secret_name: 'bucket-secret',
40+
access_key_id: 'COMPANY-SECRET/bucket-access-key-id',
41+
access_key: 'COMPANY-SECRET/bucket-access-key',
4242
}) as any,
4343
name: 'Document Upload',
4444
description: 'Upload documents to S3',
@@ -113,8 +113,8 @@ describe('S3EditComponent', () => {
113113
bucket: 'test-bucket',
114114
prefix: 'uploads/',
115115
region: 'us-east-1',
116-
access_key_id_secret_name: 'bucket-key',
117-
secret_access_key_secret_name: 'bucket-secret',
116+
access_key_id: 'COMPANY-SECRET/bucket-access-key-id',
117+
access_key: 'COMPANY-SECRET/bucket-access-key',
118118
});
119119
});
120120

frontend/src/app/components/ui-components/record-edit-fields/s3/s3.component.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -20,8 +20,8 @@ interface BucketWidgetParams {
2020
prefix?: string;
2121
region?: string;
2222
account_id?: string;
23-
access_key_id_secret_name: string;
24-
secret_access_key_secret_name: string;
23+
access_key_id: string;
24+
access_key: string;
2525
type?: 'file' | 'image';
2626
}
2727

frontend/src/app/components/ui-components/record-view-fields/s3/s3.component.spec.ts

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
import { ComponentFixture, TestBed } from '@angular/core/testing';
2-
import { S3RecordViewComponent } from './s3.component';
3-
import { S3Service } from 'src/app/services/s3.service';
42
import { ConnectionsService } from 'src/app/services/connections.service';
3+
import { S3Service } from 'src/app/services/s3.service';
54
import { TablesService } from 'src/app/services/tables.service';
5+
import { S3RecordViewComponent } from './s3.component';
66

77
describe('S3RecordViewComponent', () => {
88
let component: S3RecordViewComponent;
@@ -44,8 +44,8 @@ describe('S3RecordViewComponent', () => {
4444
widget_params: {
4545
bucket: 'my-bucket',
4646
type: 'file',
47-
access_key_id_secret_name: 'key',
48-
secret_access_key_secret_name: 'secret',
47+
access_key_id: 'COMPANY-SECRET/bucket-access-key-id',
48+
access_key: 'COMPANY-SECRET/bucket-access-key',
4949
},
5050
});
5151
component.ngOnInit();
@@ -58,8 +58,8 @@ describe('S3RecordViewComponent', () => {
5858
widget_params: {
5959
bucket: 'my-bucket',
6060
type: 'image',
61-
access_key_id_secret_name: 'key',
62-
secret_access_key_secret_name: 'secret',
61+
access_key_id: 'COMPANY-SECRET/bucket-access-key-id',
62+
access_key: 'COMPANY-SECRET/bucket-access-key',
6363
},
6464
});
6565
component.ngOnInit();

frontend/src/app/components/ui-components/record-view-fields/s3/s3.component.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -13,8 +13,8 @@ interface BucketWidgetParams {
1313
prefix?: string;
1414
region?: string;
1515
account_id?: string;
16-
access_key_id_secret_name: string;
17-
secret_access_key_secret_name: string;
16+
access_key_id: string;
17+
access_key: string;
1818
type?: 'file' | 'image';
1919
}
2020

0 commit comments

Comments
 (0)