mirror of https://github.com/dexidp/dex.git
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
109 lines
2.9 KiB
109 lines
2.9 KiB
syntax = "proto3"; |
|
|
|
package api; |
|
|
|
// Client represents an OAuth2 client. |
|
message Client { |
|
string id = 1; |
|
string secret = 2; |
|
repeated string redirect_uris = 3; |
|
repeated string trusted_peers = 4; |
|
bool public = 5; |
|
string name = 6; |
|
string logo_url = 7; |
|
} |
|
|
|
// CreateClientReq is a request to make a client. |
|
message CreateClientReq { |
|
Client client = 1; |
|
} |
|
|
|
// CreateClientResp returns the response from creating a client. |
|
message CreateClientResp { |
|
bool already_exists = 1; |
|
Client client = 2; |
|
} |
|
|
|
// DeleteClientReq is a request to delete a client. |
|
message DeleteClientReq { |
|
// The ID of the client. |
|
string id = 1; |
|
} |
|
|
|
// DeleteClientResp determines if the. |
|
message DeleteClientResp { |
|
bool not_found = 1; |
|
} |
|
|
|
// TODO(ericchiang): expand this. |
|
|
|
// Password is an email for password mapping managed by the storage. |
|
message Password { |
|
string email = 1; |
|
|
|
// Currently we do not accept plain text passwords. Could be an option in the future. |
|
bytes hash = 2; |
|
string username = 3; |
|
string user_id = 4; |
|
} |
|
|
|
// CreatePasswordReq is a request to make a password. |
|
message CreatePasswordReq { |
|
Password password = 1; |
|
} |
|
|
|
// CreatePasswordResp returns the response from creating a password. |
|
message CreatePasswordResp { |
|
bool already_exists = 1; |
|
} |
|
|
|
// UpdatePasswordReq is a request to modify an existing password. |
|
message UpdatePasswordReq { |
|
// The email used to lookup the password. This field cannot be modified |
|
string email = 1; |
|
bytes new_hash = 2; |
|
string new_username = 3; |
|
} |
|
|
|
// UpdatePasswordResp returns the response from modifying an existing password. |
|
message UpdatePasswordResp { |
|
bool not_found = 1; |
|
} |
|
|
|
// DeletePasswordReq is a request to delete a password. |
|
message DeletePasswordReq { |
|
string email = 1; |
|
} |
|
|
|
// DeletePasswordResp returns the response from deleting a password. |
|
message DeletePasswordResp { |
|
bool not_found = 1; |
|
} |
|
|
|
// VersionReq is a request to fetch version info. |
|
message VersionReq {} |
|
|
|
// VersionResp holds the version info of components. |
|
message VersionResp { |
|
// Semantic version of the server. |
|
string server = 1; |
|
// Numeric version of the API. It increases everytime a new call is added to the API. |
|
// Clients should use this info to determine if the server supports specific features. |
|
int32 api = 2; |
|
} |
|
|
|
// Dex represents the dex gRPC service. |
|
service Dex { |
|
// CreateClient creates a client. |
|
rpc CreateClient(CreateClientReq) returns (CreateClientResp) {}; |
|
// DeleteClient deletes the provided client. |
|
rpc DeleteClient(DeleteClientReq) returns (DeleteClientResp) {}; |
|
// CreatePassword creates a password. |
|
rpc CreatePassword(CreatePasswordReq) returns (CreatePasswordResp) {}; |
|
// UpdatePassword modifies existing password. |
|
rpc UpdatePassword(UpdatePasswordReq) returns (UpdatePasswordResp) {}; |
|
// DeletePassword deletes the password. |
|
rpc DeletePassword(DeletePasswordReq) returns (DeletePasswordResp) {}; |
|
// GetVersion returns version information of the server. |
|
rpc GetVersion(VersionReq) returns (VersionResp) {}; |
|
}
|
|
|