- Add auth/login and auth/logout to mciasgrpcctl, calling the existing AuthService.Login/Logout RPCs; password is always prompted interactively (term.ReadPassword), never accepted as a flag, raw bytes zeroed after use - Add proto/mcias/v1/policy.proto with PolicyService (List, Create, Get, Update, Delete policy rules) - Regenerate gen/mcias/v1/ stubs to include policy - Implement internal/grpcserver/policyservice.go delegating to the same db layer as the REST policy handlers - Register PolicyService in grpcserver.go - Add policy list/create/get/update/delete to mciasgrpcctl - Update mciasgrpcctl man page with new commands Security: auth login uses the same interactive password prompt pattern as mciasctl; password never appears in process args, shell history, or logs; raw bytes zeroed after string conversion (same as REST CLI and REST server). Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
984 lines
31 KiB
Go
984 lines
31 KiB
Go
// AccountService: account and role CRUD. All RPCs require admin role.
|
|
// CredentialService: Postgres credential management.
|
|
|
|
// Code generated by protoc-gen-go. DO NOT EDIT.
|
|
// versions:
|
|
// protoc-gen-go v1.36.11
|
|
// protoc v3.20.3
|
|
// source: mcias/v1/account.proto
|
|
|
|
package mciasv1
|
|
|
|
import (
|
|
protoreflect "google.golang.org/protobuf/reflect/protoreflect"
|
|
protoimpl "google.golang.org/protobuf/runtime/protoimpl"
|
|
reflect "reflect"
|
|
sync "sync"
|
|
unsafe "unsafe"
|
|
)
|
|
|
|
const (
|
|
// Verify that this generated code is sufficiently up-to-date.
|
|
_ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion)
|
|
// Verify that runtime/protoimpl is sufficiently up-to-date.
|
|
_ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20)
|
|
)
|
|
|
|
// ListAccountsRequest carries no parameters.
|
|
type ListAccountsRequest struct {
|
|
state protoimpl.MessageState `protogen:"open.v1"`
|
|
unknownFields protoimpl.UnknownFields
|
|
sizeCache protoimpl.SizeCache
|
|
}
|
|
|
|
func (x *ListAccountsRequest) Reset() {
|
|
*x = ListAccountsRequest{}
|
|
mi := &file_mcias_v1_account_proto_msgTypes[0]
|
|
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
|
ms.StoreMessageInfo(mi)
|
|
}
|
|
|
|
func (x *ListAccountsRequest) String() string {
|
|
return protoimpl.X.MessageStringOf(x)
|
|
}
|
|
|
|
func (*ListAccountsRequest) ProtoMessage() {}
|
|
|
|
func (x *ListAccountsRequest) ProtoReflect() protoreflect.Message {
|
|
mi := &file_mcias_v1_account_proto_msgTypes[0]
|
|
if x != nil {
|
|
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
|
if ms.LoadMessageInfo() == nil {
|
|
ms.StoreMessageInfo(mi)
|
|
}
|
|
return ms
|
|
}
|
|
return mi.MessageOf(x)
|
|
}
|
|
|
|
// Deprecated: Use ListAccountsRequest.ProtoReflect.Descriptor instead.
|
|
func (*ListAccountsRequest) Descriptor() ([]byte, []int) {
|
|
return file_mcias_v1_account_proto_rawDescGZIP(), []int{0}
|
|
}
|
|
|
|
// ListAccountsResponse returns all accounts. Credential fields are absent.
|
|
type ListAccountsResponse struct {
|
|
state protoimpl.MessageState `protogen:"open.v1"`
|
|
Accounts []*Account `protobuf:"bytes,1,rep,name=accounts,proto3" json:"accounts,omitempty"`
|
|
unknownFields protoimpl.UnknownFields
|
|
sizeCache protoimpl.SizeCache
|
|
}
|
|
|
|
func (x *ListAccountsResponse) Reset() {
|
|
*x = ListAccountsResponse{}
|
|
mi := &file_mcias_v1_account_proto_msgTypes[1]
|
|
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
|
ms.StoreMessageInfo(mi)
|
|
}
|
|
|
|
func (x *ListAccountsResponse) String() string {
|
|
return protoimpl.X.MessageStringOf(x)
|
|
}
|
|
|
|
func (*ListAccountsResponse) ProtoMessage() {}
|
|
|
|
func (x *ListAccountsResponse) ProtoReflect() protoreflect.Message {
|
|
mi := &file_mcias_v1_account_proto_msgTypes[1]
|
|
if x != nil {
|
|
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
|
if ms.LoadMessageInfo() == nil {
|
|
ms.StoreMessageInfo(mi)
|
|
}
|
|
return ms
|
|
}
|
|
return mi.MessageOf(x)
|
|
}
|
|
|
|
// Deprecated: Use ListAccountsResponse.ProtoReflect.Descriptor instead.
|
|
func (*ListAccountsResponse) Descriptor() ([]byte, []int) {
|
|
return file_mcias_v1_account_proto_rawDescGZIP(), []int{1}
|
|
}
|
|
|
|
func (x *ListAccountsResponse) GetAccounts() []*Account {
|
|
if x != nil {
|
|
return x.Accounts
|
|
}
|
|
return nil
|
|
}
|
|
|
|
// CreateAccountRequest specifies a new account to create.
|
|
type CreateAccountRequest struct {
|
|
state protoimpl.MessageState `protogen:"open.v1"`
|
|
Username string `protobuf:"bytes,1,opt,name=username,proto3" json:"username,omitempty"`
|
|
Password string `protobuf:"bytes,2,opt,name=password,proto3" json:"password,omitempty"` // required for human accounts; security: never logged
|
|
AccountType string `protobuf:"bytes,3,opt,name=account_type,json=accountType,proto3" json:"account_type,omitempty"` // "human" or "system"
|
|
unknownFields protoimpl.UnknownFields
|
|
sizeCache protoimpl.SizeCache
|
|
}
|
|
|
|
func (x *CreateAccountRequest) Reset() {
|
|
*x = CreateAccountRequest{}
|
|
mi := &file_mcias_v1_account_proto_msgTypes[2]
|
|
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
|
ms.StoreMessageInfo(mi)
|
|
}
|
|
|
|
func (x *CreateAccountRequest) String() string {
|
|
return protoimpl.X.MessageStringOf(x)
|
|
}
|
|
|
|
func (*CreateAccountRequest) ProtoMessage() {}
|
|
|
|
func (x *CreateAccountRequest) ProtoReflect() protoreflect.Message {
|
|
mi := &file_mcias_v1_account_proto_msgTypes[2]
|
|
if x != nil {
|
|
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
|
if ms.LoadMessageInfo() == nil {
|
|
ms.StoreMessageInfo(mi)
|
|
}
|
|
return ms
|
|
}
|
|
return mi.MessageOf(x)
|
|
}
|
|
|
|
// Deprecated: Use CreateAccountRequest.ProtoReflect.Descriptor instead.
|
|
func (*CreateAccountRequest) Descriptor() ([]byte, []int) {
|
|
return file_mcias_v1_account_proto_rawDescGZIP(), []int{2}
|
|
}
|
|
|
|
func (x *CreateAccountRequest) GetUsername() string {
|
|
if x != nil {
|
|
return x.Username
|
|
}
|
|
return ""
|
|
}
|
|
|
|
func (x *CreateAccountRequest) GetPassword() string {
|
|
if x != nil {
|
|
return x.Password
|
|
}
|
|
return ""
|
|
}
|
|
|
|
func (x *CreateAccountRequest) GetAccountType() string {
|
|
if x != nil {
|
|
return x.AccountType
|
|
}
|
|
return ""
|
|
}
|
|
|
|
// CreateAccountResponse returns the created account record.
|
|
type CreateAccountResponse struct {
|
|
state protoimpl.MessageState `protogen:"open.v1"`
|
|
Account *Account `protobuf:"bytes,1,opt,name=account,proto3" json:"account,omitempty"`
|
|
unknownFields protoimpl.UnknownFields
|
|
sizeCache protoimpl.SizeCache
|
|
}
|
|
|
|
func (x *CreateAccountResponse) Reset() {
|
|
*x = CreateAccountResponse{}
|
|
mi := &file_mcias_v1_account_proto_msgTypes[3]
|
|
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
|
ms.StoreMessageInfo(mi)
|
|
}
|
|
|
|
func (x *CreateAccountResponse) String() string {
|
|
return protoimpl.X.MessageStringOf(x)
|
|
}
|
|
|
|
func (*CreateAccountResponse) ProtoMessage() {}
|
|
|
|
func (x *CreateAccountResponse) ProtoReflect() protoreflect.Message {
|
|
mi := &file_mcias_v1_account_proto_msgTypes[3]
|
|
if x != nil {
|
|
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
|
if ms.LoadMessageInfo() == nil {
|
|
ms.StoreMessageInfo(mi)
|
|
}
|
|
return ms
|
|
}
|
|
return mi.MessageOf(x)
|
|
}
|
|
|
|
// Deprecated: Use CreateAccountResponse.ProtoReflect.Descriptor instead.
|
|
func (*CreateAccountResponse) Descriptor() ([]byte, []int) {
|
|
return file_mcias_v1_account_proto_rawDescGZIP(), []int{3}
|
|
}
|
|
|
|
func (x *CreateAccountResponse) GetAccount() *Account {
|
|
if x != nil {
|
|
return x.Account
|
|
}
|
|
return nil
|
|
}
|
|
|
|
// GetAccountRequest identifies an account by UUID.
|
|
type GetAccountRequest struct {
|
|
state protoimpl.MessageState `protogen:"open.v1"`
|
|
Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` // UUID
|
|
unknownFields protoimpl.UnknownFields
|
|
sizeCache protoimpl.SizeCache
|
|
}
|
|
|
|
func (x *GetAccountRequest) Reset() {
|
|
*x = GetAccountRequest{}
|
|
mi := &file_mcias_v1_account_proto_msgTypes[4]
|
|
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
|
ms.StoreMessageInfo(mi)
|
|
}
|
|
|
|
func (x *GetAccountRequest) String() string {
|
|
return protoimpl.X.MessageStringOf(x)
|
|
}
|
|
|
|
func (*GetAccountRequest) ProtoMessage() {}
|
|
|
|
func (x *GetAccountRequest) ProtoReflect() protoreflect.Message {
|
|
mi := &file_mcias_v1_account_proto_msgTypes[4]
|
|
if x != nil {
|
|
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
|
if ms.LoadMessageInfo() == nil {
|
|
ms.StoreMessageInfo(mi)
|
|
}
|
|
return ms
|
|
}
|
|
return mi.MessageOf(x)
|
|
}
|
|
|
|
// Deprecated: Use GetAccountRequest.ProtoReflect.Descriptor instead.
|
|
func (*GetAccountRequest) Descriptor() ([]byte, []int) {
|
|
return file_mcias_v1_account_proto_rawDescGZIP(), []int{4}
|
|
}
|
|
|
|
func (x *GetAccountRequest) GetId() string {
|
|
if x != nil {
|
|
return x.Id
|
|
}
|
|
return ""
|
|
}
|
|
|
|
// GetAccountResponse returns the account record.
|
|
type GetAccountResponse struct {
|
|
state protoimpl.MessageState `protogen:"open.v1"`
|
|
Account *Account `protobuf:"bytes,1,opt,name=account,proto3" json:"account,omitempty"`
|
|
unknownFields protoimpl.UnknownFields
|
|
sizeCache protoimpl.SizeCache
|
|
}
|
|
|
|
func (x *GetAccountResponse) Reset() {
|
|
*x = GetAccountResponse{}
|
|
mi := &file_mcias_v1_account_proto_msgTypes[5]
|
|
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
|
ms.StoreMessageInfo(mi)
|
|
}
|
|
|
|
func (x *GetAccountResponse) String() string {
|
|
return protoimpl.X.MessageStringOf(x)
|
|
}
|
|
|
|
func (*GetAccountResponse) ProtoMessage() {}
|
|
|
|
func (x *GetAccountResponse) ProtoReflect() protoreflect.Message {
|
|
mi := &file_mcias_v1_account_proto_msgTypes[5]
|
|
if x != nil {
|
|
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
|
if ms.LoadMessageInfo() == nil {
|
|
ms.StoreMessageInfo(mi)
|
|
}
|
|
return ms
|
|
}
|
|
return mi.MessageOf(x)
|
|
}
|
|
|
|
// Deprecated: Use GetAccountResponse.ProtoReflect.Descriptor instead.
|
|
func (*GetAccountResponse) Descriptor() ([]byte, []int) {
|
|
return file_mcias_v1_account_proto_rawDescGZIP(), []int{5}
|
|
}
|
|
|
|
func (x *GetAccountResponse) GetAccount() *Account {
|
|
if x != nil {
|
|
return x.Account
|
|
}
|
|
return nil
|
|
}
|
|
|
|
// UpdateAccountRequest updates mutable fields. Only non-empty fields are applied.
|
|
type UpdateAccountRequest struct {
|
|
state protoimpl.MessageState `protogen:"open.v1"`
|
|
Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` // UUID
|
|
Status string `protobuf:"bytes,2,opt,name=status,proto3" json:"status,omitempty"` // "active" or "inactive" (omit to leave unchanged)
|
|
unknownFields protoimpl.UnknownFields
|
|
sizeCache protoimpl.SizeCache
|
|
}
|
|
|
|
func (x *UpdateAccountRequest) Reset() {
|
|
*x = UpdateAccountRequest{}
|
|
mi := &file_mcias_v1_account_proto_msgTypes[6]
|
|
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
|
ms.StoreMessageInfo(mi)
|
|
}
|
|
|
|
func (x *UpdateAccountRequest) String() string {
|
|
return protoimpl.X.MessageStringOf(x)
|
|
}
|
|
|
|
func (*UpdateAccountRequest) ProtoMessage() {}
|
|
|
|
func (x *UpdateAccountRequest) ProtoReflect() protoreflect.Message {
|
|
mi := &file_mcias_v1_account_proto_msgTypes[6]
|
|
if x != nil {
|
|
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
|
if ms.LoadMessageInfo() == nil {
|
|
ms.StoreMessageInfo(mi)
|
|
}
|
|
return ms
|
|
}
|
|
return mi.MessageOf(x)
|
|
}
|
|
|
|
// Deprecated: Use UpdateAccountRequest.ProtoReflect.Descriptor instead.
|
|
func (*UpdateAccountRequest) Descriptor() ([]byte, []int) {
|
|
return file_mcias_v1_account_proto_rawDescGZIP(), []int{6}
|
|
}
|
|
|
|
func (x *UpdateAccountRequest) GetId() string {
|
|
if x != nil {
|
|
return x.Id
|
|
}
|
|
return ""
|
|
}
|
|
|
|
func (x *UpdateAccountRequest) GetStatus() string {
|
|
if x != nil {
|
|
return x.Status
|
|
}
|
|
return ""
|
|
}
|
|
|
|
// UpdateAccountResponse confirms the update.
|
|
type UpdateAccountResponse struct {
|
|
state protoimpl.MessageState `protogen:"open.v1"`
|
|
unknownFields protoimpl.UnknownFields
|
|
sizeCache protoimpl.SizeCache
|
|
}
|
|
|
|
func (x *UpdateAccountResponse) Reset() {
|
|
*x = UpdateAccountResponse{}
|
|
mi := &file_mcias_v1_account_proto_msgTypes[7]
|
|
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
|
ms.StoreMessageInfo(mi)
|
|
}
|
|
|
|
func (x *UpdateAccountResponse) String() string {
|
|
return protoimpl.X.MessageStringOf(x)
|
|
}
|
|
|
|
func (*UpdateAccountResponse) ProtoMessage() {}
|
|
|
|
func (x *UpdateAccountResponse) ProtoReflect() protoreflect.Message {
|
|
mi := &file_mcias_v1_account_proto_msgTypes[7]
|
|
if x != nil {
|
|
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
|
if ms.LoadMessageInfo() == nil {
|
|
ms.StoreMessageInfo(mi)
|
|
}
|
|
return ms
|
|
}
|
|
return mi.MessageOf(x)
|
|
}
|
|
|
|
// Deprecated: Use UpdateAccountResponse.ProtoReflect.Descriptor instead.
|
|
func (*UpdateAccountResponse) Descriptor() ([]byte, []int) {
|
|
return file_mcias_v1_account_proto_rawDescGZIP(), []int{7}
|
|
}
|
|
|
|
// DeleteAccountRequest soft-deletes an account and revokes its tokens.
|
|
type DeleteAccountRequest struct {
|
|
state protoimpl.MessageState `protogen:"open.v1"`
|
|
Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` // UUID
|
|
unknownFields protoimpl.UnknownFields
|
|
sizeCache protoimpl.SizeCache
|
|
}
|
|
|
|
func (x *DeleteAccountRequest) Reset() {
|
|
*x = DeleteAccountRequest{}
|
|
mi := &file_mcias_v1_account_proto_msgTypes[8]
|
|
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
|
ms.StoreMessageInfo(mi)
|
|
}
|
|
|
|
func (x *DeleteAccountRequest) String() string {
|
|
return protoimpl.X.MessageStringOf(x)
|
|
}
|
|
|
|
func (*DeleteAccountRequest) ProtoMessage() {}
|
|
|
|
func (x *DeleteAccountRequest) ProtoReflect() protoreflect.Message {
|
|
mi := &file_mcias_v1_account_proto_msgTypes[8]
|
|
if x != nil {
|
|
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
|
if ms.LoadMessageInfo() == nil {
|
|
ms.StoreMessageInfo(mi)
|
|
}
|
|
return ms
|
|
}
|
|
return mi.MessageOf(x)
|
|
}
|
|
|
|
// Deprecated: Use DeleteAccountRequest.ProtoReflect.Descriptor instead.
|
|
func (*DeleteAccountRequest) Descriptor() ([]byte, []int) {
|
|
return file_mcias_v1_account_proto_rawDescGZIP(), []int{8}
|
|
}
|
|
|
|
func (x *DeleteAccountRequest) GetId() string {
|
|
if x != nil {
|
|
return x.Id
|
|
}
|
|
return ""
|
|
}
|
|
|
|
// DeleteAccountResponse confirms deletion.
|
|
type DeleteAccountResponse struct {
|
|
state protoimpl.MessageState `protogen:"open.v1"`
|
|
unknownFields protoimpl.UnknownFields
|
|
sizeCache protoimpl.SizeCache
|
|
}
|
|
|
|
func (x *DeleteAccountResponse) Reset() {
|
|
*x = DeleteAccountResponse{}
|
|
mi := &file_mcias_v1_account_proto_msgTypes[9]
|
|
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
|
ms.StoreMessageInfo(mi)
|
|
}
|
|
|
|
func (x *DeleteAccountResponse) String() string {
|
|
return protoimpl.X.MessageStringOf(x)
|
|
}
|
|
|
|
func (*DeleteAccountResponse) ProtoMessage() {}
|
|
|
|
func (x *DeleteAccountResponse) ProtoReflect() protoreflect.Message {
|
|
mi := &file_mcias_v1_account_proto_msgTypes[9]
|
|
if x != nil {
|
|
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
|
if ms.LoadMessageInfo() == nil {
|
|
ms.StoreMessageInfo(mi)
|
|
}
|
|
return ms
|
|
}
|
|
return mi.MessageOf(x)
|
|
}
|
|
|
|
// Deprecated: Use DeleteAccountResponse.ProtoReflect.Descriptor instead.
|
|
func (*DeleteAccountResponse) Descriptor() ([]byte, []int) {
|
|
return file_mcias_v1_account_proto_rawDescGZIP(), []int{9}
|
|
}
|
|
|
|
// GetRolesRequest identifies an account by UUID.
|
|
type GetRolesRequest struct {
|
|
state protoimpl.MessageState `protogen:"open.v1"`
|
|
Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` // UUID
|
|
unknownFields protoimpl.UnknownFields
|
|
sizeCache protoimpl.SizeCache
|
|
}
|
|
|
|
func (x *GetRolesRequest) Reset() {
|
|
*x = GetRolesRequest{}
|
|
mi := &file_mcias_v1_account_proto_msgTypes[10]
|
|
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
|
ms.StoreMessageInfo(mi)
|
|
}
|
|
|
|
func (x *GetRolesRequest) String() string {
|
|
return protoimpl.X.MessageStringOf(x)
|
|
}
|
|
|
|
func (*GetRolesRequest) ProtoMessage() {}
|
|
|
|
func (x *GetRolesRequest) ProtoReflect() protoreflect.Message {
|
|
mi := &file_mcias_v1_account_proto_msgTypes[10]
|
|
if x != nil {
|
|
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
|
if ms.LoadMessageInfo() == nil {
|
|
ms.StoreMessageInfo(mi)
|
|
}
|
|
return ms
|
|
}
|
|
return mi.MessageOf(x)
|
|
}
|
|
|
|
// Deprecated: Use GetRolesRequest.ProtoReflect.Descriptor instead.
|
|
func (*GetRolesRequest) Descriptor() ([]byte, []int) {
|
|
return file_mcias_v1_account_proto_rawDescGZIP(), []int{10}
|
|
}
|
|
|
|
func (x *GetRolesRequest) GetId() string {
|
|
if x != nil {
|
|
return x.Id
|
|
}
|
|
return ""
|
|
}
|
|
|
|
// GetRolesResponse lists the current roles.
|
|
type GetRolesResponse struct {
|
|
state protoimpl.MessageState `protogen:"open.v1"`
|
|
Roles []string `protobuf:"bytes,1,rep,name=roles,proto3" json:"roles,omitempty"`
|
|
unknownFields protoimpl.UnknownFields
|
|
sizeCache protoimpl.SizeCache
|
|
}
|
|
|
|
func (x *GetRolesResponse) Reset() {
|
|
*x = GetRolesResponse{}
|
|
mi := &file_mcias_v1_account_proto_msgTypes[11]
|
|
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
|
ms.StoreMessageInfo(mi)
|
|
}
|
|
|
|
func (x *GetRolesResponse) String() string {
|
|
return protoimpl.X.MessageStringOf(x)
|
|
}
|
|
|
|
func (*GetRolesResponse) ProtoMessage() {}
|
|
|
|
func (x *GetRolesResponse) ProtoReflect() protoreflect.Message {
|
|
mi := &file_mcias_v1_account_proto_msgTypes[11]
|
|
if x != nil {
|
|
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
|
if ms.LoadMessageInfo() == nil {
|
|
ms.StoreMessageInfo(mi)
|
|
}
|
|
return ms
|
|
}
|
|
return mi.MessageOf(x)
|
|
}
|
|
|
|
// Deprecated: Use GetRolesResponse.ProtoReflect.Descriptor instead.
|
|
func (*GetRolesResponse) Descriptor() ([]byte, []int) {
|
|
return file_mcias_v1_account_proto_rawDescGZIP(), []int{11}
|
|
}
|
|
|
|
func (x *GetRolesResponse) GetRoles() []string {
|
|
if x != nil {
|
|
return x.Roles
|
|
}
|
|
return nil
|
|
}
|
|
|
|
// SetRolesRequest replaces the role set for an account.
|
|
type SetRolesRequest struct {
|
|
state protoimpl.MessageState `protogen:"open.v1"`
|
|
Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` // UUID
|
|
Roles []string `protobuf:"bytes,2,rep,name=roles,proto3" json:"roles,omitempty"`
|
|
unknownFields protoimpl.UnknownFields
|
|
sizeCache protoimpl.SizeCache
|
|
}
|
|
|
|
func (x *SetRolesRequest) Reset() {
|
|
*x = SetRolesRequest{}
|
|
mi := &file_mcias_v1_account_proto_msgTypes[12]
|
|
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
|
ms.StoreMessageInfo(mi)
|
|
}
|
|
|
|
func (x *SetRolesRequest) String() string {
|
|
return protoimpl.X.MessageStringOf(x)
|
|
}
|
|
|
|
func (*SetRolesRequest) ProtoMessage() {}
|
|
|
|
func (x *SetRolesRequest) ProtoReflect() protoreflect.Message {
|
|
mi := &file_mcias_v1_account_proto_msgTypes[12]
|
|
if x != nil {
|
|
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
|
if ms.LoadMessageInfo() == nil {
|
|
ms.StoreMessageInfo(mi)
|
|
}
|
|
return ms
|
|
}
|
|
return mi.MessageOf(x)
|
|
}
|
|
|
|
// Deprecated: Use SetRolesRequest.ProtoReflect.Descriptor instead.
|
|
func (*SetRolesRequest) Descriptor() ([]byte, []int) {
|
|
return file_mcias_v1_account_proto_rawDescGZIP(), []int{12}
|
|
}
|
|
|
|
func (x *SetRolesRequest) GetId() string {
|
|
if x != nil {
|
|
return x.Id
|
|
}
|
|
return ""
|
|
}
|
|
|
|
func (x *SetRolesRequest) GetRoles() []string {
|
|
if x != nil {
|
|
return x.Roles
|
|
}
|
|
return nil
|
|
}
|
|
|
|
// SetRolesResponse confirms the update.
|
|
type SetRolesResponse struct {
|
|
state protoimpl.MessageState `protogen:"open.v1"`
|
|
unknownFields protoimpl.UnknownFields
|
|
sizeCache protoimpl.SizeCache
|
|
}
|
|
|
|
func (x *SetRolesResponse) Reset() {
|
|
*x = SetRolesResponse{}
|
|
mi := &file_mcias_v1_account_proto_msgTypes[13]
|
|
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
|
ms.StoreMessageInfo(mi)
|
|
}
|
|
|
|
func (x *SetRolesResponse) String() string {
|
|
return protoimpl.X.MessageStringOf(x)
|
|
}
|
|
|
|
func (*SetRolesResponse) ProtoMessage() {}
|
|
|
|
func (x *SetRolesResponse) ProtoReflect() protoreflect.Message {
|
|
mi := &file_mcias_v1_account_proto_msgTypes[13]
|
|
if x != nil {
|
|
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
|
if ms.LoadMessageInfo() == nil {
|
|
ms.StoreMessageInfo(mi)
|
|
}
|
|
return ms
|
|
}
|
|
return mi.MessageOf(x)
|
|
}
|
|
|
|
// Deprecated: Use SetRolesResponse.ProtoReflect.Descriptor instead.
|
|
func (*SetRolesResponse) Descriptor() ([]byte, []int) {
|
|
return file_mcias_v1_account_proto_rawDescGZIP(), []int{13}
|
|
}
|
|
|
|
// GetPGCredsRequest identifies an account by UUID.
|
|
type GetPGCredsRequest struct {
|
|
state protoimpl.MessageState `protogen:"open.v1"`
|
|
Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` // UUID
|
|
unknownFields protoimpl.UnknownFields
|
|
sizeCache protoimpl.SizeCache
|
|
}
|
|
|
|
func (x *GetPGCredsRequest) Reset() {
|
|
*x = GetPGCredsRequest{}
|
|
mi := &file_mcias_v1_account_proto_msgTypes[14]
|
|
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
|
ms.StoreMessageInfo(mi)
|
|
}
|
|
|
|
func (x *GetPGCredsRequest) String() string {
|
|
return protoimpl.X.MessageStringOf(x)
|
|
}
|
|
|
|
func (*GetPGCredsRequest) ProtoMessage() {}
|
|
|
|
func (x *GetPGCredsRequest) ProtoReflect() protoreflect.Message {
|
|
mi := &file_mcias_v1_account_proto_msgTypes[14]
|
|
if x != nil {
|
|
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
|
if ms.LoadMessageInfo() == nil {
|
|
ms.StoreMessageInfo(mi)
|
|
}
|
|
return ms
|
|
}
|
|
return mi.MessageOf(x)
|
|
}
|
|
|
|
// Deprecated: Use GetPGCredsRequest.ProtoReflect.Descriptor instead.
|
|
func (*GetPGCredsRequest) Descriptor() ([]byte, []int) {
|
|
return file_mcias_v1_account_proto_rawDescGZIP(), []int{14}
|
|
}
|
|
|
|
func (x *GetPGCredsRequest) GetId() string {
|
|
if x != nil {
|
|
return x.Id
|
|
}
|
|
return ""
|
|
}
|
|
|
|
// GetPGCredsResponse returns decrypted Postgres credentials.
|
|
// Security: password is present only in this response; never in list output.
|
|
type GetPGCredsResponse struct {
|
|
state protoimpl.MessageState `protogen:"open.v1"`
|
|
Creds *PGCreds `protobuf:"bytes,1,opt,name=creds,proto3" json:"creds,omitempty"`
|
|
unknownFields protoimpl.UnknownFields
|
|
sizeCache protoimpl.SizeCache
|
|
}
|
|
|
|
func (x *GetPGCredsResponse) Reset() {
|
|
*x = GetPGCredsResponse{}
|
|
mi := &file_mcias_v1_account_proto_msgTypes[15]
|
|
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
|
ms.StoreMessageInfo(mi)
|
|
}
|
|
|
|
func (x *GetPGCredsResponse) String() string {
|
|
return protoimpl.X.MessageStringOf(x)
|
|
}
|
|
|
|
func (*GetPGCredsResponse) ProtoMessage() {}
|
|
|
|
func (x *GetPGCredsResponse) ProtoReflect() protoreflect.Message {
|
|
mi := &file_mcias_v1_account_proto_msgTypes[15]
|
|
if x != nil {
|
|
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
|
if ms.LoadMessageInfo() == nil {
|
|
ms.StoreMessageInfo(mi)
|
|
}
|
|
return ms
|
|
}
|
|
return mi.MessageOf(x)
|
|
}
|
|
|
|
// Deprecated: Use GetPGCredsResponse.ProtoReflect.Descriptor instead.
|
|
func (*GetPGCredsResponse) Descriptor() ([]byte, []int) {
|
|
return file_mcias_v1_account_proto_rawDescGZIP(), []int{15}
|
|
}
|
|
|
|
func (x *GetPGCredsResponse) GetCreds() *PGCreds {
|
|
if x != nil {
|
|
return x.Creds
|
|
}
|
|
return nil
|
|
}
|
|
|
|
// SetPGCredsRequest stores Postgres credentials for an account.
|
|
type SetPGCredsRequest struct {
|
|
state protoimpl.MessageState `protogen:"open.v1"`
|
|
Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` // UUID
|
|
Creds *PGCreds `protobuf:"bytes,2,opt,name=creds,proto3" json:"creds,omitempty"`
|
|
unknownFields protoimpl.UnknownFields
|
|
sizeCache protoimpl.SizeCache
|
|
}
|
|
|
|
func (x *SetPGCredsRequest) Reset() {
|
|
*x = SetPGCredsRequest{}
|
|
mi := &file_mcias_v1_account_proto_msgTypes[16]
|
|
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
|
ms.StoreMessageInfo(mi)
|
|
}
|
|
|
|
func (x *SetPGCredsRequest) String() string {
|
|
return protoimpl.X.MessageStringOf(x)
|
|
}
|
|
|
|
func (*SetPGCredsRequest) ProtoMessage() {}
|
|
|
|
func (x *SetPGCredsRequest) ProtoReflect() protoreflect.Message {
|
|
mi := &file_mcias_v1_account_proto_msgTypes[16]
|
|
if x != nil {
|
|
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
|
if ms.LoadMessageInfo() == nil {
|
|
ms.StoreMessageInfo(mi)
|
|
}
|
|
return ms
|
|
}
|
|
return mi.MessageOf(x)
|
|
}
|
|
|
|
// Deprecated: Use SetPGCredsRequest.ProtoReflect.Descriptor instead.
|
|
func (*SetPGCredsRequest) Descriptor() ([]byte, []int) {
|
|
return file_mcias_v1_account_proto_rawDescGZIP(), []int{16}
|
|
}
|
|
|
|
func (x *SetPGCredsRequest) GetId() string {
|
|
if x != nil {
|
|
return x.Id
|
|
}
|
|
return ""
|
|
}
|
|
|
|
func (x *SetPGCredsRequest) GetCreds() *PGCreds {
|
|
if x != nil {
|
|
return x.Creds
|
|
}
|
|
return nil
|
|
}
|
|
|
|
// SetPGCredsResponse confirms the update.
|
|
type SetPGCredsResponse struct {
|
|
state protoimpl.MessageState `protogen:"open.v1"`
|
|
unknownFields protoimpl.UnknownFields
|
|
sizeCache protoimpl.SizeCache
|
|
}
|
|
|
|
func (x *SetPGCredsResponse) Reset() {
|
|
*x = SetPGCredsResponse{}
|
|
mi := &file_mcias_v1_account_proto_msgTypes[17]
|
|
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
|
ms.StoreMessageInfo(mi)
|
|
}
|
|
|
|
func (x *SetPGCredsResponse) String() string {
|
|
return protoimpl.X.MessageStringOf(x)
|
|
}
|
|
|
|
func (*SetPGCredsResponse) ProtoMessage() {}
|
|
|
|
func (x *SetPGCredsResponse) ProtoReflect() protoreflect.Message {
|
|
mi := &file_mcias_v1_account_proto_msgTypes[17]
|
|
if x != nil {
|
|
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
|
if ms.LoadMessageInfo() == nil {
|
|
ms.StoreMessageInfo(mi)
|
|
}
|
|
return ms
|
|
}
|
|
return mi.MessageOf(x)
|
|
}
|
|
|
|
// Deprecated: Use SetPGCredsResponse.ProtoReflect.Descriptor instead.
|
|
func (*SetPGCredsResponse) Descriptor() ([]byte, []int) {
|
|
return file_mcias_v1_account_proto_rawDescGZIP(), []int{17}
|
|
}
|
|
|
|
var File_mcias_v1_account_proto protoreflect.FileDescriptor
|
|
|
|
const file_mcias_v1_account_proto_rawDesc = "" +
|
|
"\n" +
|
|
"\x16mcias/v1/account.proto\x12\bmcias.v1\x1a\x15mcias/v1/common.proto\"\x15\n" +
|
|
"\x13ListAccountsRequest\"E\n" +
|
|
"\x14ListAccountsResponse\x12-\n" +
|
|
"\baccounts\x18\x01 \x03(\v2\x11.mcias.v1.AccountR\baccounts\"q\n" +
|
|
"\x14CreateAccountRequest\x12\x1a\n" +
|
|
"\busername\x18\x01 \x01(\tR\busername\x12\x1a\n" +
|
|
"\bpassword\x18\x02 \x01(\tR\bpassword\x12!\n" +
|
|
"\faccount_type\x18\x03 \x01(\tR\vaccountType\"D\n" +
|
|
"\x15CreateAccountResponse\x12+\n" +
|
|
"\aaccount\x18\x01 \x01(\v2\x11.mcias.v1.AccountR\aaccount\"#\n" +
|
|
"\x11GetAccountRequest\x12\x0e\n" +
|
|
"\x02id\x18\x01 \x01(\tR\x02id\"A\n" +
|
|
"\x12GetAccountResponse\x12+\n" +
|
|
"\aaccount\x18\x01 \x01(\v2\x11.mcias.v1.AccountR\aaccount\">\n" +
|
|
"\x14UpdateAccountRequest\x12\x0e\n" +
|
|
"\x02id\x18\x01 \x01(\tR\x02id\x12\x16\n" +
|
|
"\x06status\x18\x02 \x01(\tR\x06status\"\x17\n" +
|
|
"\x15UpdateAccountResponse\"&\n" +
|
|
"\x14DeleteAccountRequest\x12\x0e\n" +
|
|
"\x02id\x18\x01 \x01(\tR\x02id\"\x17\n" +
|
|
"\x15DeleteAccountResponse\"!\n" +
|
|
"\x0fGetRolesRequest\x12\x0e\n" +
|
|
"\x02id\x18\x01 \x01(\tR\x02id\"(\n" +
|
|
"\x10GetRolesResponse\x12\x14\n" +
|
|
"\x05roles\x18\x01 \x03(\tR\x05roles\"7\n" +
|
|
"\x0fSetRolesRequest\x12\x0e\n" +
|
|
"\x02id\x18\x01 \x01(\tR\x02id\x12\x14\n" +
|
|
"\x05roles\x18\x02 \x03(\tR\x05roles\"\x12\n" +
|
|
"\x10SetRolesResponse\"#\n" +
|
|
"\x11GetPGCredsRequest\x12\x0e\n" +
|
|
"\x02id\x18\x01 \x01(\tR\x02id\"=\n" +
|
|
"\x12GetPGCredsResponse\x12'\n" +
|
|
"\x05creds\x18\x01 \x01(\v2\x11.mcias.v1.PGCredsR\x05creds\"L\n" +
|
|
"\x11SetPGCredsRequest\x12\x0e\n" +
|
|
"\x02id\x18\x01 \x01(\tR\x02id\x12'\n" +
|
|
"\x05creds\x18\x02 \x01(\v2\x11.mcias.v1.PGCredsR\x05creds\"\x14\n" +
|
|
"\x12SetPGCredsResponse2\xa4\x04\n" +
|
|
"\x0eAccountService\x12M\n" +
|
|
"\fListAccounts\x12\x1d.mcias.v1.ListAccountsRequest\x1a\x1e.mcias.v1.ListAccountsResponse\x12P\n" +
|
|
"\rCreateAccount\x12\x1e.mcias.v1.CreateAccountRequest\x1a\x1f.mcias.v1.CreateAccountResponse\x12G\n" +
|
|
"\n" +
|
|
"GetAccount\x12\x1b.mcias.v1.GetAccountRequest\x1a\x1c.mcias.v1.GetAccountResponse\x12P\n" +
|
|
"\rUpdateAccount\x12\x1e.mcias.v1.UpdateAccountRequest\x1a\x1f.mcias.v1.UpdateAccountResponse\x12P\n" +
|
|
"\rDeleteAccount\x12\x1e.mcias.v1.DeleteAccountRequest\x1a\x1f.mcias.v1.DeleteAccountResponse\x12A\n" +
|
|
"\bGetRoles\x12\x19.mcias.v1.GetRolesRequest\x1a\x1a.mcias.v1.GetRolesResponse\x12A\n" +
|
|
"\bSetRoles\x12\x19.mcias.v1.SetRolesRequest\x1a\x1a.mcias.v1.SetRolesResponse2\xa5\x01\n" +
|
|
"\x11CredentialService\x12G\n" +
|
|
"\n" +
|
|
"GetPGCreds\x12\x1b.mcias.v1.GetPGCredsRequest\x1a\x1c.mcias.v1.GetPGCredsResponse\x12G\n" +
|
|
"\n" +
|
|
"SetPGCreds\x12\x1b.mcias.v1.SetPGCredsRequest\x1a\x1c.mcias.v1.SetPGCredsResponseB2Z0git.wntrmute.dev/kyle/mcias/gen/mcias/v1;mciasv1b\x06proto3"
|
|
|
|
var (
|
|
file_mcias_v1_account_proto_rawDescOnce sync.Once
|
|
file_mcias_v1_account_proto_rawDescData []byte
|
|
)
|
|
|
|
func file_mcias_v1_account_proto_rawDescGZIP() []byte {
|
|
file_mcias_v1_account_proto_rawDescOnce.Do(func() {
|
|
file_mcias_v1_account_proto_rawDescData = protoimpl.X.CompressGZIP(unsafe.Slice(unsafe.StringData(file_mcias_v1_account_proto_rawDesc), len(file_mcias_v1_account_proto_rawDesc)))
|
|
})
|
|
return file_mcias_v1_account_proto_rawDescData
|
|
}
|
|
|
|
var file_mcias_v1_account_proto_msgTypes = make([]protoimpl.MessageInfo, 18)
|
|
var file_mcias_v1_account_proto_goTypes = []any{
|
|
(*ListAccountsRequest)(nil), // 0: mcias.v1.ListAccountsRequest
|
|
(*ListAccountsResponse)(nil), // 1: mcias.v1.ListAccountsResponse
|
|
(*CreateAccountRequest)(nil), // 2: mcias.v1.CreateAccountRequest
|
|
(*CreateAccountResponse)(nil), // 3: mcias.v1.CreateAccountResponse
|
|
(*GetAccountRequest)(nil), // 4: mcias.v1.GetAccountRequest
|
|
(*GetAccountResponse)(nil), // 5: mcias.v1.GetAccountResponse
|
|
(*UpdateAccountRequest)(nil), // 6: mcias.v1.UpdateAccountRequest
|
|
(*UpdateAccountResponse)(nil), // 7: mcias.v1.UpdateAccountResponse
|
|
(*DeleteAccountRequest)(nil), // 8: mcias.v1.DeleteAccountRequest
|
|
(*DeleteAccountResponse)(nil), // 9: mcias.v1.DeleteAccountResponse
|
|
(*GetRolesRequest)(nil), // 10: mcias.v1.GetRolesRequest
|
|
(*GetRolesResponse)(nil), // 11: mcias.v1.GetRolesResponse
|
|
(*SetRolesRequest)(nil), // 12: mcias.v1.SetRolesRequest
|
|
(*SetRolesResponse)(nil), // 13: mcias.v1.SetRolesResponse
|
|
(*GetPGCredsRequest)(nil), // 14: mcias.v1.GetPGCredsRequest
|
|
(*GetPGCredsResponse)(nil), // 15: mcias.v1.GetPGCredsResponse
|
|
(*SetPGCredsRequest)(nil), // 16: mcias.v1.SetPGCredsRequest
|
|
(*SetPGCredsResponse)(nil), // 17: mcias.v1.SetPGCredsResponse
|
|
(*Account)(nil), // 18: mcias.v1.Account
|
|
(*PGCreds)(nil), // 19: mcias.v1.PGCreds
|
|
}
|
|
var file_mcias_v1_account_proto_depIdxs = []int32{
|
|
18, // 0: mcias.v1.ListAccountsResponse.accounts:type_name -> mcias.v1.Account
|
|
18, // 1: mcias.v1.CreateAccountResponse.account:type_name -> mcias.v1.Account
|
|
18, // 2: mcias.v1.GetAccountResponse.account:type_name -> mcias.v1.Account
|
|
19, // 3: mcias.v1.GetPGCredsResponse.creds:type_name -> mcias.v1.PGCreds
|
|
19, // 4: mcias.v1.SetPGCredsRequest.creds:type_name -> mcias.v1.PGCreds
|
|
0, // 5: mcias.v1.AccountService.ListAccounts:input_type -> mcias.v1.ListAccountsRequest
|
|
2, // 6: mcias.v1.AccountService.CreateAccount:input_type -> mcias.v1.CreateAccountRequest
|
|
4, // 7: mcias.v1.AccountService.GetAccount:input_type -> mcias.v1.GetAccountRequest
|
|
6, // 8: mcias.v1.AccountService.UpdateAccount:input_type -> mcias.v1.UpdateAccountRequest
|
|
8, // 9: mcias.v1.AccountService.DeleteAccount:input_type -> mcias.v1.DeleteAccountRequest
|
|
10, // 10: mcias.v1.AccountService.GetRoles:input_type -> mcias.v1.GetRolesRequest
|
|
12, // 11: mcias.v1.AccountService.SetRoles:input_type -> mcias.v1.SetRolesRequest
|
|
14, // 12: mcias.v1.CredentialService.GetPGCreds:input_type -> mcias.v1.GetPGCredsRequest
|
|
16, // 13: mcias.v1.CredentialService.SetPGCreds:input_type -> mcias.v1.SetPGCredsRequest
|
|
1, // 14: mcias.v1.AccountService.ListAccounts:output_type -> mcias.v1.ListAccountsResponse
|
|
3, // 15: mcias.v1.AccountService.CreateAccount:output_type -> mcias.v1.CreateAccountResponse
|
|
5, // 16: mcias.v1.AccountService.GetAccount:output_type -> mcias.v1.GetAccountResponse
|
|
7, // 17: mcias.v1.AccountService.UpdateAccount:output_type -> mcias.v1.UpdateAccountResponse
|
|
9, // 18: mcias.v1.AccountService.DeleteAccount:output_type -> mcias.v1.DeleteAccountResponse
|
|
11, // 19: mcias.v1.AccountService.GetRoles:output_type -> mcias.v1.GetRolesResponse
|
|
13, // 20: mcias.v1.AccountService.SetRoles:output_type -> mcias.v1.SetRolesResponse
|
|
15, // 21: mcias.v1.CredentialService.GetPGCreds:output_type -> mcias.v1.GetPGCredsResponse
|
|
17, // 22: mcias.v1.CredentialService.SetPGCreds:output_type -> mcias.v1.SetPGCredsResponse
|
|
14, // [14:23] is the sub-list for method output_type
|
|
5, // [5:14] is the sub-list for method input_type
|
|
5, // [5:5] is the sub-list for extension type_name
|
|
5, // [5:5] is the sub-list for extension extendee
|
|
0, // [0:5] is the sub-list for field type_name
|
|
}
|
|
|
|
func init() { file_mcias_v1_account_proto_init() }
|
|
func file_mcias_v1_account_proto_init() {
|
|
if File_mcias_v1_account_proto != nil {
|
|
return
|
|
}
|
|
file_mcias_v1_common_proto_init()
|
|
type x struct{}
|
|
out := protoimpl.TypeBuilder{
|
|
File: protoimpl.DescBuilder{
|
|
GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
|
|
RawDescriptor: unsafe.Slice(unsafe.StringData(file_mcias_v1_account_proto_rawDesc), len(file_mcias_v1_account_proto_rawDesc)),
|
|
NumEnums: 0,
|
|
NumMessages: 18,
|
|
NumExtensions: 0,
|
|
NumServices: 2,
|
|
},
|
|
GoTypes: file_mcias_v1_account_proto_goTypes,
|
|
DependencyIndexes: file_mcias_v1_account_proto_depIdxs,
|
|
MessageInfos: file_mcias_v1_account_proto_msgTypes,
|
|
}.Build()
|
|
File_mcias_v1_account_proto = out.File
|
|
file_mcias_v1_account_proto_goTypes = nil
|
|
file_mcias_v1_account_proto_depIdxs = nil
|
|
}
|