Skip to content

feat(images): implement authenticated gRPC redirection for Images API#146

Open
abhishekr700 wants to merge 1 commit intoGoogleCloudPlatform:mainfrom
abhishekr700:main
Open

feat(images): implement authenticated gRPC redirection for Images API#146
abhishekr700 wants to merge 1 commit intoGoogleCloudPlatform:mainfrom
abhishekr700:main

Conversation

@abhishekr700
Copy link
Copy Markdown
Collaborator

  • Intercept execute_transforms, histogram, and composite calls in the SDK.

  • Redirect these calls to a custom, self-hosted gRPC service defined by IMAGES_SERVICE_ENDPOINT.

  • Implement secure service-to-service authentication using OIDC tokens (via google.auth and grpc.access_token_call_credentials).

  • Support native Google Cloud Storage (GCS) integration by passing raw /gs/ paths to the external service, bypassing legacy BlobKey encoding.

  • Implement fallback logic for legacy BlobKeys: automatically fetch blob content locally and send raw bytes to the external service when a direct reference cannot be resolved.

  • Increase gRPC max receive message size to 32MB to support high-resolution image processing.

  • Refactor internal logic to share authentication and channel creation code across all API methods.

  • Tests pass

@abhishekr700 abhishekr700 requested a review from Hrithik98 April 14, 2026 10:39
@Hrithik98
Copy link
Copy Markdown
Collaborator

why are we modifying taskqueue tests?
‎tests/google/appengine/api/taskqueue/taskqueue_test.py

@Hrithik98
Copy link
Copy Markdown
Collaborator

Also, some tests are failing in the CI workflows. Please take a look

- Intercept `execute_transforms`, `histogram`, and `composite` calls in the SDK.
- Redirect these calls to a custom, self-hosted gRPC service defined by `IMAGES_SERVICE_ENDPOINT`.
- Implement secure service-to-service authentication using OIDC tokens (via `google.auth` and `grpc.access_token_call_credentials`).
- Support native Google Cloud Storage (GCS) integration by passing raw `/gs/` paths to the external service, bypassing legacy BlobKey encoding.
- Implement fallback logic for legacy BlobKeys: automatically fetch blob content locally and send raw bytes to the external service when a direct reference cannot be resolved.
- Increase gRPC max receive message size to 32MB to support high-resolution image processing.
- Refactor internal logic to share authentication and channel creation code across all API methods.
@abhishekr700 abhishekr700 force-pushed the main branch 2 times, most recently from b1271bc to f0e40a3 Compare April 21, 2026 09:11
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.

2 participants