Files
paralus/proto/rpc/user/user.proto
Akshay Gaikwad 1f64d80729 Auto-generate password and force reset (#124)
* Upgrade kratos service to v0.10.1

Signed-off-by: Akshay Gaikwad <akgaikwad001@gmail.com>

* Upgrade kratos-client-go to v0.10.1

Signed-off-by: Akshay Gaikwad <akgaikwad001@gmail.com>

* generate password feature for kratos admin creation

Signed-off-by: Akshay Gaikwad <akgaikwad001@gmail.com>

* Add forceReset property in user spec

Signed-off-by: Akshay Gaikwad <akgaikwad001@gmail.com>

* added forcereset in the init script

Signed-off-by: mabhi <abhijit.mukherjee@infracloud.io>

* Resolve conflicts

Signed-off-by: Akshay Gaikwad <akgaikwad001@gmail.com>

* Stdout default admin password in initialize script

Signed-off-by: Akshay Gaikwad <akgaikwad001@gmail.com>

* setting password for new user and sending default password in create user response

Signed-off-by: mabhi <abhijit.mukherjee@infracloud.io>

* added new endpoint to service force reset flag update after resetting complete outside authz

Signed-off-by: mabhi <abhijit.mukherjee@infracloud.io>

* removed unnecessary overhead in the forcereset endpoint and updated user type proto to remove unused fields

Signed-off-by: mabhi <abhijit.mukherjee@infracloud.io>
2023-01-27 18:32:11 +05:30

192 lines
4.9 KiB
Protocol Buffer

syntax = "proto3";
package paralus.dev.rpc.user.v3;
import "google/protobuf/timestamp.proto";
import "google/api/annotations.proto";
import "protoc-gen-openapiv2/options/annotations.proto";
import "proto/types/userpb/v3/user.proto";
import "proto/types/commonpb/v3/common.proto";
option (grpc.gateway.protoc_gen_openapiv2.options.openapiv2_swagger) = {
info : {
title : "User management Service"
version : "2.0"
contact : {name : "Paralus Dev"}
}
schemes : HTTPS
consumes : "application/json"
consumes : "application/yaml"
produces : "application/json"
produces : "application/yaml"
security_definitions : {
security : {
key : "BasicAuth"
value : {type : TYPE_BASIC}
}
security : {
key : "ApiKeyAuth"
value : {type : TYPE_API_KEY in : IN_HEADER name : "X-PARALUS-API-KEYID"}
}
}
security : {
security_requirement : {
key : "BasicAuth"
value : {}
}
security_requirement : {
key : "ApiKeyAuth"
value : {}
}
}
responses : {
key : "403"
value : {
description : "Returned when the user does not have permission to access "
"the resource."
}
}
responses : {
key : "404"
value : {
description : "Returned when the resource does not exist."
schema : {json_schema : {type : STRING}}
}
}
};
message ApiKeyRequest {
string username = 1;
string id = 2;
}
message ApiKeyResponse {
google.protobuf.Timestamp modifiedAt = 1;
google.protobuf.Timestamp createdAt = 2;
string id = 3;
string key = 4;
string name = 5;
}
message UserListApiKeysResponse { repeated ApiKeyResponse items = 1; }
message UserForgotPasswordRequest { string username = 1; }
message UserForgotPasswordResponse {
string recoveryLink = 1;
}
message UserDeleteApiKeysResponse {}
message CliConfigRequest {}
message UpdateForceResetRequest {}
message UpdateForceResetResponse {}
message UserLoginAuditRequest {string user_id = 1;}
message UserLoginAuditResponse {}
service UserService {
rpc AuditLogWebhook(UserLoginAuditRequest)
returns (UserLoginAuditResponse) {
option (google.api.http) = {
post : "/auth/v3/user/auditlog"
body : "*"
};
};
rpc CreateUser(paralus.dev.types.user.v3.User)
returns (paralus.dev.types.user.v3.User) {
option (google.api.http) = {
post : "/auth/v3/users"
body : "*"
};
option (grpc.gateway.protoc_gen_openapiv2.options.openapiv2_operation) = {
responses : {
key : "201"
value : {description : "Returned when user is created successfully."}
}
};
};
rpc GetUsers(paralus.dev.types.common.v3.QueryOptions)
returns (paralus.dev.types.user.v3.UserList) {
option (google.api.http) = {
get : "/auth/v3/users"
};
};
rpc GetUser(paralus.dev.types.user.v3.User)
returns (paralus.dev.types.user.v3.User) {
option (google.api.http) = {
get : "/auth/v3/user/{metadata.name}"
};
};
rpc GetUserInfo(paralus.dev.types.user.v3.User)
returns (paralus.dev.types.user.v3.UserInfo) {
option (google.api.http) = {
get : "/auth/v3/userinfo" // user name if picked from session
};
};
rpc UpdateUser(paralus.dev.types.user.v3.User)
returns (paralus.dev.types.user.v3.User) {
option (google.api.http) = {
put : "/auth/v3/user/{metadata.name}"
body : "*"
};
};
rpc UpdateUserForceReset(UpdateForceResetRequest)
returns (UpdateForceResetResponse){
option (google.api.http) = {
put : "/auth/v3/user/reset"
body : "*"
};
option (grpc.gateway.protoc_gen_openapiv2.options.openapiv2_operation) = {
responses : {
key : "200"
value : {description : "Returned when user forcereset flag has been successfully unset"}
}
};
};
rpc DeleteUser(paralus.dev.types.user.v3.User) returns (UserDeleteApiKeysResponse) {
option (google.api.http) = {
delete : "/auth/v3/user/{metadata.name}"
};
option (grpc.gateway.protoc_gen_openapiv2.options.openapiv2_operation) = {
responses : {
key : "204"
value : {description : "Returned when user is deleted successfully."}
}
};
};
rpc DownloadCliConfig(CliConfigRequest)
returns (paralus.dev.types.common.v3.HttpBody) {
option (google.api.http) = {
get : "/auth/v3/cli/config"
};
};
rpc UserListApiKeys(ApiKeyRequest) returns (UserListApiKeysResponse) {
option (google.api.http) = {
get : "/auth/v3/user/{username}/apikeys"
};
};
rpc UserDeleteApiKeys(ApiKeyRequest) returns (UserDeleteApiKeysResponse) {
option (google.api.http) = {
delete : "/auth/v3/user/{username}/apikeys/{id}"
};
};
rpc UserForgotPassword(UserForgotPasswordRequest) returns (UserForgotPasswordResponse) {
option (google.api.http) = {
get : "/auth/v3/user/{username}/forgotpassword"
};
};
}