mirror of
https://github.com/dadosfera/maestro.git
synced 2026-10-15 01:09:07 +00:00
feat(cdc-iceberg): thread qualify namespace/table through maestro
Threads the new CDC→Iceberg fields from the REST DTOs to the gRPC calls:
- CdcTableReq.iceberg_qualify_table_name + IcebergDestinationReq.qualify_namespace
in input.model.ts
- inputs.service.ts create map forwards iceberg_qualify_table_name
- platform-api.controller.ts addTable body + cdcTable thread iceberg_qualify_table_name
Bumps protospack to v3.41.0-cdc-iceberg.4; docsfera.json regenerated with the new
/platform/iceberg/{namespaces,tables/validate} routes.
Co-Authored-By: WOZCODE <contact@withwoz.com>
This commit is contained in:
@@ -543,6 +543,20 @@ export class PlatformApiController {
|
||||
return this.platformApiService.proxy('GET', `/pipeline/${normalizedId}`, user);
|
||||
}
|
||||
|
||||
@Get('iceberg/namespaces')
|
||||
@ApiOperation({ summary: 'List existing Polaris Iceberg namespaces (CDC destination dropdown)' })
|
||||
@RequireAllPermissions(PERMISSIONS_GROUPS.PIPELINE.permissions.GET)
|
||||
async getIcebergNamespaces(@User() user: RequestUser) {
|
||||
return this.platformApiService.proxy('GET', '/iceberg/namespaces', user);
|
||||
}
|
||||
|
||||
@Post('iceberg/tables/validate')
|
||||
@ApiOperation({ summary: 'Validate CDC Iceberg raw table names against Polaris' })
|
||||
@RequireAllPermissions(PERMISSIONS_GROUPS.PIPELINE.permissions.GET)
|
||||
async validateIcebergTables(@Body() body: any, @User() user: RequestUser) {
|
||||
return this.platformApiService.proxy('POST', '/iceberg/tables/validate', user, body);
|
||||
}
|
||||
|
||||
@Patch('pipelines/:pipelineId')
|
||||
@ApiOperation({ summary: 'Update pipeline by ID' })
|
||||
@RequireAllPermissions(PERMISSIONS_GROUPS.PIPELINE.permissions.UPDATE)
|
||||
@@ -1079,8 +1093,13 @@ export class PlatformApiController {
|
||||
// Iceberg destination only (protospack CdcTable.iceberg_table_name);
|
||||
// absent for snowflake, back-compat.
|
||||
iceberg_table_name?: string;
|
||||
// Per-table deduped (qualify) Iceberg table name (protospack
|
||||
// CdcTable.iceberg_qualify_table_name); absent => same as the raw name.
|
||||
iceberg_qualify_table_name?: string;
|
||||
// Source column schema for iceberg deduped table pre-create (protospack CdcTable.columns).
|
||||
columns?: { name: string; type: string; is_primary_key: boolean }[];
|
||||
// Columns the user chose to ignore -> Debezium column.exclude.list.
|
||||
column_exclude_list?: string[];
|
||||
},
|
||||
@User() user: RequestUser,
|
||||
) {
|
||||
@@ -1096,7 +1115,9 @@ export class PlatformApiController {
|
||||
primary_keys: body.primary_keys,
|
||||
name: body.table_name,
|
||||
iceberg_table_name: body.iceberg_table_name,
|
||||
iceberg_qualify_table_name: body.iceberg_qualify_table_name,
|
||||
columns: body.columns ?? [],
|
||||
column_exclude_list: body.column_exclude_list ?? [],
|
||||
};
|
||||
|
||||
this.logger.info('addTable: appending CDC table to DynamoDB', { inputId, tableName: body.table_name });
|
||||
|
||||
Reference in New Issue
Block a user