Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Make CallCredentials non-experimental #1914

Open
zhangkun83 opened this issue Jun 9, 2016 · 12 comments
Open

Make CallCredentials non-experimental #1914

zhangkun83 opened this issue Jun 9, 2016 · 12 comments
Assignees
Labels
experimental API Issue tracks stabilizing an experimental API
Milestone

Comments

@zhangkun83
Copy link
Contributor

This is a tracking issue for removing @ExperimentalApi from CallCredentials-related API.

@zhangkun83 zhangkun83 self-assigned this Jun 9, 2016
@ejona86 ejona86 added this to the Unscheduled milestone Aug 22, 2016
@ejona86 ejona86 added the experimental API Issue tracks stabilizing an experimental API label Aug 22, 2016
@dapengzhang0 dapengzhang0 modified the milestones: 1.1, Unscheduled Jan 19, 2017
@dapengzhang0
Copy link
Member

not stabilized yet, keep unscheduled

@garrettjonesgoogle
Copy link
Contributor

This seems critical for client stability - without this being non-experimental, there is no non-experimental way to make gRPC calls that require credentials, effectively making it so that gRPC doesn't have a "complete" GA surface.

@ejona86 ejona86 modified the milestones: Next, Unscheduled Feb 23, 2017
@ejona86
Copy link
Member

ejona86 commented Feb 23, 2017

Agreed, this is very important to stabilize. If push comes to shove, there is one trick we could do: we could stabilize the usages, but not the implementations. So that would mean CallOptions.withCallCredentials and MoreCallCredentials could be stable, even though the interface may change. We'd basically say that the name would remain the same and MoreCallCredentials would remain compatible. grpc-auth would need to be version-pinned (if it isn't already) to the same version of grpc-core, but that shouldn't cause much issue.

@ejona86
Copy link
Member

ejona86 commented Apr 19, 2017

I'm assigning this to myself to remove most of the experimental api tags as I mentioned in the last comment, but I'm not going to end up stabilizing all of the API.

@saturnism
Copy link
Contributor

Would it be possible not to have Google credentials in the core gRPC libraries? gRPC as a core RPC framework probably don't need Google credentials.

@ejona86
Copy link
Member

ejona86 commented Jul 25, 2017

@saturnism, only grpc-auth depends on google-auth-library-credentials. Also, "Google credentials" isn't in google-auth-library-credentials, but in google-auth-library-oauth2-http. CallCredentials is in grpc-core, so there should be no unnecessary dependencies.

@saturnism
Copy link
Contributor

saturnism commented Jul 26, 2017

it seems grpc-auth is only dealing w/ google credentials. @garrettjonesgoogle do you actually need this from gcloud-java? It was a discussion point of dependency conflicts.

grpc-auth feels very much core, as the core auth supplement library; is there a plan to add additional auth providers to grpc-auth?

would it make sense to have submodule e.g. grpc-auth-google? The point is that... if you need auth in gRPC, you don't necessarily need Google credentials.

@ejona86
Copy link
Member

ejona86 commented Jul 26, 2017

@saturnism, your comments are off-topic for this issue (CallCredentials is in grpc-core and has no external dependencies). Let's move the conversation to the freshly-created #3280

ejona86 added a commit to ejona86/grpc-java that referenced this issue Jul 27, 2017
As discussed in grpc#1914, we need CallCredentials and MoreCallCredentials
to be stable, but there's less of a strong need for the contents of
CallCredentials to be stable. We're willing to commit to the name,
without needing to commit to the plumbing.
ejona86 added a commit that referenced this issue Jul 28, 2017
As discussed in #1914, we need CallCredentials and MoreCallCredentials
to be stable, but there's less of a strong need for the contents of
CallCredentials to be stable. We're willing to commit to the name,
without needing to commit to the plumbing.
@ejona86
Copy link
Member

ejona86 commented Jan 16, 2018

Possibly need to fix: there is no way to cancel an async CallCredential. C has a cancel in its API.

@ejona86
Copy link
Member

ejona86 commented Jan 16, 2018

Hmm... maybe that is an internal API. Because I also see this API which doesn't have a cancel.

@ejona86
Copy link
Member

ejona86 commented Aug 4, 2022

API review:

  • Ready to stabilize
  • Obviously will remove the thisUsesUnstableApi() method. Probably in two phases: give it an implementation and make it deprecated, later delete.

@temawi
Copy link
Contributor

temawi commented May 22, 2023

Stabilized in #10208.

The thisUsesUnstableApi() method has been marked deprecated to give implementers time to stop using it until we remove the method in the future. I will leave this issue open to track the removal of the method.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
experimental API Issue tracks stabilizing an experimental API
Projects
None yet
Development

No branches or pull requests

6 participants