afe53eb862
* Start work on context aware backends * Start work on moving the database plugins to gRPC in order to pass context * Add context to builtin database plugins * use byte slice instead of string * Context all the things * Move proto messages to the dbplugin package * Add a grpc mechanism for running backend plugins * Serve the GRPC plugin * Add backwards compatibility to the database plugins * Remove backend plugin changes * Remove backend plugin changes * Cleanup the transport implementations * If grpc connection is in an unexpected state restart the plugin * Fix tests * Fix tests * Remove context from the request object, replace it with context.TODO * Add a test to verify netRPC plugins still work * Remove unused mapstructure call * Code review fixes * Code review fixes * Code review fixes
59 lines
1.2 KiB
Protocol Buffer
59 lines
1.2 KiB
Protocol Buffer
syntax = "proto3";
|
|
package dbplugin;
|
|
|
|
import "google/protobuf/timestamp.proto";
|
|
|
|
message InitializeRequest {
|
|
bytes config = 1;
|
|
bool verify_connection = 2;
|
|
}
|
|
|
|
message CreateUserRequest {
|
|
Statements statements = 1;
|
|
UsernameConfig username_config = 2;
|
|
google.protobuf.Timestamp expiration = 3;
|
|
}
|
|
|
|
message RenewUserRequest {
|
|
Statements statements = 1;
|
|
string username = 2;
|
|
google.protobuf.Timestamp expiration = 3;
|
|
}
|
|
|
|
message RevokeUserRequest {
|
|
Statements statements = 1;
|
|
string username = 2;
|
|
}
|
|
|
|
message Statements {
|
|
string creation_statements = 1;
|
|
string revocation_statements = 2;
|
|
string rollback_statements = 3;
|
|
string renew_statements = 4;
|
|
}
|
|
|
|
message UsernameConfig {
|
|
string DisplayName = 1;
|
|
string RoleName = 2;
|
|
}
|
|
|
|
message CreateUserResponse {
|
|
string username = 1;
|
|
string password = 2;
|
|
}
|
|
|
|
message TypeResponse {
|
|
string type = 1;
|
|
}
|
|
|
|
message Empty {}
|
|
|
|
service Database {
|
|
rpc Type(Empty) returns (TypeResponse);
|
|
rpc CreateUser(CreateUserRequest) returns (CreateUserResponse);
|
|
rpc RenewUser(RenewUserRequest) returns (Empty);
|
|
rpc RevokeUser(RevokeUserRequest) returns (Empty);
|
|
rpc Initialize(InitializeRequest) returns (Empty);
|
|
rpc Close(Empty) returns (Empty);
|
|
}
|