diff options
Diffstat (limited to 'docker/api/buildkit/auth')
-rw-r--r-- | docker/api/buildkit/auth/auth.proto | 19 | ||||
-rw-r--r-- | docker/api/buildkit/auth/auth.py | 26 | ||||
-rw-r--r-- | docker/api/buildkit/auth/auth_grpc.py | 37 | ||||
-rw-r--r-- | docker/api/buildkit/auth/auth_pb2.py | 140 |
4 files changed, 222 insertions, 0 deletions
diff --git a/docker/api/buildkit/auth/auth.proto b/docker/api/buildkit/auth/auth.proto new file mode 100644 index 0000000..79afb36 --- /dev/null +++ b/docker/api/buildkit/auth/auth.proto @@ -0,0 +1,19 @@ +syntax = "proto3"; + +package moby.filesync.v1; + +option go_package = "auth"; + +service Auth{ + rpc Credentials(CredentialsRequest) returns (CredentialsResponse); +} + + +message CredentialsRequest { + string Host = 1; +} + +message CredentialsResponse { + string Username = 1; + string Secret = 2; +}
\ No newline at end of file diff --git a/docker/api/buildkit/auth/auth.py b/docker/api/buildkit/auth/auth.py new file mode 100644 index 0000000..df096a7 --- /dev/null +++ b/docker/api/buildkit/auth/auth.py @@ -0,0 +1,26 @@ +from .auth_pb2 import CredentialsResponse +from .auth_grpc import AuthBase +from ..grpc import Attachable +from docker.auth import resolve_authconfig + + +class Auth(AuthBase, Attachable): + def __init__(self, authconfig, credstore_env, *args, **kwargs): + self.authconfig = authconfig + self.credstore_env = credstore_env + super(Auth, self).__init__(*args, **kwargs) + + async def Credentials(self, stream): + request = await stream.recv_message() + host = request.Host + auth_data = resolve_authconfig( + self.authconfig, host, self.credstore_env + ) + response = None + if auth_data is None: + response = CredentialsResponse(Username=None, Secret=None) + else: + response = CredentialsResponse( + Username=auth_data['Username'], Secret=auth_data['Password'] + ) + await stream.send_message(response) diff --git a/docker/api/buildkit/auth/auth_grpc.py b/docker/api/buildkit/auth/auth_grpc.py new file mode 100644 index 0000000..4c54bcd --- /dev/null +++ b/docker/api/buildkit/auth/auth_grpc.py @@ -0,0 +1,37 @@ +# Generated by the Protocol Buffers compiler. DO NOT EDIT! +# source: auth.proto +# plugin: grpclib.plugin.main +import abc + +import grpclib.const +import grpclib.client + +import auth_pb2 + + +class AuthBase(abc.ABC): + + @abc.abstractmethod + async def Credentials(self, stream): + pass + + def __mapping__(self): + return { + '/moby.filesync.v1.Auth/Credentials': grpclib.const.Handler( + self.Credentials, + grpclib.const.Cardinality.UNARY_UNARY, + auth_pb2.CredentialsRequest, + auth_pb2.CredentialsResponse, + ), + } + + +class AuthStub: + + def __init__(self, channel: grpclib.client.Channel) -> None: + self.Credentials = grpclib.client.UnaryUnaryMethod( + channel, + '/moby.filesync.v1.Auth/Credentials', + auth_pb2.CredentialsRequest, + auth_pb2.CredentialsResponse, + ) diff --git a/docker/api/buildkit/auth/auth_pb2.py b/docker/api/buildkit/auth/auth_pb2.py new file mode 100644 index 0000000..07ee94a --- /dev/null +++ b/docker/api/buildkit/auth/auth_pb2.py @@ -0,0 +1,140 @@ +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: auth.proto + +import sys +_b=sys.version_info[0]<3 and (lambda x:x) or (lambda x:x.encode('latin1')) +from google.protobuf import descriptor as _descriptor +from google.protobuf import message as _message +from google.protobuf import reflection as _reflection +from google.protobuf import symbol_database as _symbol_database +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + + + +DESCRIPTOR = _descriptor.FileDescriptor( + name='auth.proto', + package='moby.filesync.v1', + syntax='proto3', + serialized_options=_b('Z\004auth'), + serialized_pb=_b('\n\nauth.proto\x12\x10moby.filesync.v1\"\"\n\x12\x43redentialsRequest\x12\x0c\n\x04Host\x18\x01 \x01(\t\"7\n\x13\x43redentialsResponse\x12\x10\n\x08Username\x18\x01 \x01(\t\x12\x0e\n\x06Secret\x18\x02 \x01(\t2b\n\x04\x41uth\x12Z\n\x0b\x43redentials\x12$.moby.filesync.v1.CredentialsRequest\x1a%.moby.filesync.v1.CredentialsResponseB\x06Z\x04\x61uthb\x06proto3') +) + + + + +_CREDENTIALSREQUEST = _descriptor.Descriptor( + name='CredentialsRequest', + full_name='moby.filesync.v1.CredentialsRequest', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + _descriptor.FieldDescriptor( + name='Host', full_name='moby.filesync.v1.CredentialsRequest.Host', index=0, + number=1, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=_b("").decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=32, + serialized_end=66, +) + + +_CREDENTIALSRESPONSE = _descriptor.Descriptor( + name='CredentialsResponse', + full_name='moby.filesync.v1.CredentialsResponse', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + _descriptor.FieldDescriptor( + name='Username', full_name='moby.filesync.v1.CredentialsResponse.Username', index=0, + number=1, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=_b("").decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='Secret', full_name='moby.filesync.v1.CredentialsResponse.Secret', index=1, + number=2, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=_b("").decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=68, + serialized_end=123, +) + +DESCRIPTOR.message_types_by_name['CredentialsRequest'] = _CREDENTIALSREQUEST +DESCRIPTOR.message_types_by_name['CredentialsResponse'] = _CREDENTIALSRESPONSE +_sym_db.RegisterFileDescriptor(DESCRIPTOR) + +CredentialsRequest = _reflection.GeneratedProtocolMessageType('CredentialsRequest', (_message.Message,), dict( + DESCRIPTOR = _CREDENTIALSREQUEST, + __module__ = 'auth_pb2' + # @@protoc_insertion_point(class_scope:moby.filesync.v1.CredentialsRequest) + )) +_sym_db.RegisterMessage(CredentialsRequest) + +CredentialsResponse = _reflection.GeneratedProtocolMessageType('CredentialsResponse', (_message.Message,), dict( + DESCRIPTOR = _CREDENTIALSRESPONSE, + __module__ = 'auth_pb2' + # @@protoc_insertion_point(class_scope:moby.filesync.v1.CredentialsResponse) + )) +_sym_db.RegisterMessage(CredentialsResponse) + + +DESCRIPTOR._options = None + +_AUTH = _descriptor.ServiceDescriptor( + name='Auth', + full_name='moby.filesync.v1.Auth', + file=DESCRIPTOR, + index=0, + serialized_options=None, + serialized_start=125, + serialized_end=223, + methods=[ + _descriptor.MethodDescriptor( + name='Credentials', + full_name='moby.filesync.v1.Auth.Credentials', + index=0, + containing_service=None, + input_type=_CREDENTIALSREQUEST, + output_type=_CREDENTIALSRESPONSE, + serialized_options=None, + ), +]) +_sym_db.RegisterServiceDescriptor(_AUTH) + +DESCRIPTOR.services_by_name['Auth'] = _AUTH + +# @@protoc_insertion_point(module_scope) |