Skip to content

Conversation

@PotatoWKY
Copy link
Contributor

Summary

This PR migrates the GlueCatalog custom API client from the deprecated AWS SDK v2 generator pattern to standalone AWS SDK v3-compatible packages. This migration is required as part of the broader AWS Toolkit repository migration from SDK v2 to v3.

The AWS Toolkit VSCode repository is deprecating the centralized generateServiceClient.ts script that generates TypeScript clients from service JSON definitions. The SageMaker Unified Studio (SMUS) team currently uses this v2 generator for GlueCatalog.

Solution

  • Created standalone package @amzn/glue-catalog-client
  • Updated imports to use new standalone package
  • Removed dependency for GlueCatalogApi on the deprecated generateServiceClient.ts script

  • Treat all work as PUBLIC. Private feature/x branches will not be squash-merged at release time.
  • Your code changes must meet the guidelines in CONTRIBUTING.md.
  • License: I confirm that my contribution is made under the terms of the Apache 2.0 license.

@PotatoWKY PotatoWKY requested a review from a team as a code owner December 6, 2025 00:51
@amazon-inspector-ohio
Copy link

⏳ I'm reviewing this pull request for security vulnerabilities and code quality issues. I'll provide an update when I'm done

@github-actions
Copy link

github-actions bot commented Dec 6, 2025

  • This pull request implements a feat or fix, so it must include a changelog entry (unless the fix is for an unreleased feature). Review the changelog guidelines.
    • Note: beta or "experiment" features that have active users should announce fixes in the changelog.
    • If this is not a feature or fix, use an appropriate type from the title guidelines. For example, telemetry-only changes should use the telemetry type.

@amazon-inspector-ohio
Copy link

✅ I finished the code review, and didn't find any security or code quality issues.

@PotatoWKY PotatoWKY force-pushed the master branch 2 times, most recently from 323d7da to a2845b1 Compare December 8, 2025 19:48
@PotatoWKY PotatoWKY closed this Dec 9, 2025
@PotatoWKY PotatoWKY reopened this Dec 9, 2025
import * as GlueCatalogApi from './gluecatalogapi'
import apiConfig = require('./gluecatalogapi.json')
import { ServiceConfigurationOptions } from 'aws-sdk/lib/service'
import { GlueCatalog, Catalog } from '@amzn/glue-catalog-client'
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The naming here is very confusing. You have import here that import both { GlueCatalog, Catalog } , and you have import in above file that import { Catalog as GlueCatalog } from '@amzn/glue-catalog-client', let's make the name consistent.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Let's keep sdk's naming, I would update this line:

{ Catalog as GlueCatalog } from '@amzn/glue-catalog-client'

undefined,
false
)) as GlueCatalogApi
const creds = await this.connectionCredentialsProvider.getCredentials()
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

If I remember correctly, this won't work properly, the goal is to directly pass the credential provider into the client constructor. So that the client can auto-refresh the creds. If you firstly get the creds and pass into the client, it will expire. So try to directly pass the credential provider to the constructor. Check other client implementation for reference

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks for pointing this out

@PotatoWKY PotatoWKY closed this Dec 9, 2025
@PotatoWKY PotatoWKY reopened this Dec 9, 2025
@PotatoWKY PotatoWKY requested a review from liuzulin December 9, 2025 22:43
@PotatoWKY PotatoWKY force-pushed the master branch 4 times, most recently from bc31b22 to 81c907d Compare December 9, 2025 23:50
@chungjac chungjac merged commit 20a5e85 into aws:master Dec 10, 2025
50 of 52 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants