@ -144,10 +144,9 @@ type InstanceProfile struct {
Demo bool ` protobuf:"varint,3,opt,name=demo,proto3" json:"demo,omitempty" `
// Instance URL is the URL of the instance.
InstanceUrl string ` protobuf:"bytes,6,opt,name=instance_url,json=instanceUrl,proto3" json:"instance_url,omitempty" `
// Indicates if the instance has completed first-time setup.
// When false, the instance requires initialization (creating the first admin account).
// This follows the pattern used by other self-hosted platforms for setup workflows.
Initialized bool ` protobuf:"varint,7,opt,name=initialized,proto3" json:"initialized,omitempty" `
// The first administrator who set up this instance.
// When null, instance requires initial setup (creating the first admin account).
Admin * User ` protobuf:"bytes,7,opt,name=admin,proto3" json:"admin,omitempty" `
unknownFields protoimpl . UnknownFields
sizeCache protoimpl . SizeCache
}
@ -203,11 +202,11 @@ func (x *InstanceProfile) GetInstanceUrl() string {
return ""
}
func ( x * InstanceProfile ) Get Initialized( ) bool {
func ( x * InstanceProfile ) Get Admin( ) * User {
if x != nil {
return x . Initialized
return x . Admin
}
return false
return nil
}
// Request for instance profile.
@ -876,12 +875,12 @@ var File_api_v1_instance_service_proto protoreflect.FileDescriptor
const file_api_v1_instance_service_proto_rawDesc = "" +
"\n" +
"\x1dapi/v1/instance_service.proto\x12\fmemos.api.v1\x1a\x1 cgoogle/api/annotations.proto\x1a\x17google/api/client.proto\x1a\x1fgoogle/api/field_behavior.proto\x1a\x19google/api/resource.proto\x1a google/protobuf/field_mask.proto\"\x84 \x01\n" +
"\x1dapi/v1/instance_service.proto\x12\fmemos.api.v1\x1a\x1 9api/v1/user_service.proto\x1a\x1 cgoogle/api/annotations.proto\x1a\x17google/api/client.proto\x1a\x1fgoogle/api/field_behavior.proto\x1a\x19google/api/resource.proto\x1a google/protobuf/field_mask.proto\"\x8c \x01\n" +
"\x0fInstanceProfile\x12\x18\n" +
"\aversion\x18\x02 \x01(\tR\aversion\x12\x12\n" +
"\x04demo\x18\x03 \x01(\bR\x04demo\x12!\n" +
"\finstance_url\x18\x06 \x01(\tR\vinstanceUrl\x12 \n" +
"\ vinitialized\x18\a \x01(\bR\vinitialized \"\x1b\n" +
"\finstance_url\x18\x06 \x01(\tR\vinstanceUrl\x12 ( \n" +
"\ x05admin\x18\a \x01(\v2\x12.memos.api.v1.UserR\x05admin \"\x1b\n" +
"\x19GetInstanceProfileRequest\"\x99\x0f\n" +
"\x0fInstanceSetting\x12\x17\n" +
"\x04name\x18\x01 \x01(\tB\x03\xe0A\bR\x04name\x12W\n" +
@ -971,28 +970,30 @@ var file_api_v1_instance_service_proto_goTypes = []any{
( * InstanceSetting_MemoRelatedSetting ) ( nil ) , // 9: memos.api.v1.InstanceSetting.MemoRelatedSetting
( * InstanceSetting_GeneralSetting_CustomProfile ) ( nil ) , // 10: memos.api.v1.InstanceSetting.GeneralSetting.CustomProfile
( * InstanceSetting_StorageSetting_S3Config ) ( nil ) , // 11: memos.api.v1.InstanceSetting.StorageSetting.S3Config
( * fieldmaskpb . FieldMask ) ( nil ) , // 12: google.protobuf.FieldMask
( * User ) ( nil ) , // 12: memos.api.v1.User
( * fieldmaskpb . FieldMask ) ( nil ) , // 13: google.protobuf.FieldMask
}
var file_api_v1_instance_service_proto_depIdxs = [ ] int32 {
7 , // 0: memos.api.v1.InstanceSetting.general_setting:type_name -> memos.api.v1.InstanceSetting.GeneralSetting
8 , // 1: memos.api.v1.InstanceSetting.storage_setting:type_name -> memos.api.v1.InstanceSetting.StorageSetting
9 , // 2: memos.api.v1.InstanceSetting.memo_related_setting:type_name -> memos.api.v1.InstanceSetting.MemoRelatedSetting
4 , // 3: memos.api.v1.UpdateInstanceSettingRequest.setting:type_name -> memos.api.v1.InstanceSetting
12 , // 4: memos.api.v1.UpdateInstanceSettingRequest.update_mask:type_name -> google.protobuf.FieldMask
10 , // 5: memos.api.v1.InstanceSetting.GeneralSetting.custom_profile:type_name -> memos.api.v1.InstanceSetting.GeneralSetting.CustomProfile
1 , // 6: memos.api.v1.InstanceSetting.StorageSetting.storage_type:type_name -> memos.api.v1.InstanceSetting.StorageSetting.StorageType
11 , // 7: memos.api.v1.InstanceSetting.StorageSetting.s3_config:type_name -> memos.api.v1.InstanceSetting.StorageSetting.S3Config
3 , // 8: memos.api.v1.InstanceService.GetInstanceProfile:input_type -> memos.api.v1.GetInstanceProfileRequest
5 , // 9: memos.api.v1.InstanceService.GetInstanceSetting:input_type -> memos.api.v1.GetInstanceSettingRequest
6 , // 10: memos.api.v1.InstanceService.UpdateInstanceSetting:input_type -> memos.api.v1.UpdateInstanceSettingRequest
2 , // 11: memos.api.v1.InstanceService.GetInstanceProfile:output_type -> memos.api.v1.InstanceProfile
4 , // 12: memos.api.v1.InstanceService.GetInstanceSetting:output_type -> memos.api.v1.InstanceSetting
4 , // 13: memos.api.v1.InstanceService.UpdateInstanceSetting:output_type -> memos.api.v1.InstanceSetting
11 , // [11:14] is the sub-list for method output_type
8 , // [8:11] is the sub-list for method input_type
8 , // [8:8] is the sub-list for extension type_name
8 , // [8:8] is the sub-list for extension extendee
0 , // [0:8] is the sub-list for field type_name
12 , // 0: memos.api.v1.InstanceProfile.admin:type_name -> memos.api.v1.User
7 , // 1: memos.api.v1.InstanceSetting.general_setting:type_name -> memos.api.v1.InstanceSetting.GeneralSetting
8 , // 2: memos.api.v1.InstanceSetting.storage_setting:type_name -> memos.api.v1.InstanceSetting.StorageSetting
9 , // 3: memos.api.v1.InstanceSetting.memo_related_setting:type_name -> memos.api.v1.InstanceSetting.MemoRelatedSetting
4 , // 4: memos.api.v1.UpdateInstanceSettingRequest.setting:type_name -> memos.api.v1.InstanceSetting
13 , // 5: memos.api.v1.UpdateInstanceSettingRequest.update_mask:type_name -> google.protobuf.FieldMask
10 , // 6: memos.api.v1.InstanceSetting.GeneralSetting.custom_profile:type_name -> memos.api.v1.InstanceSetting.GeneralSetting.CustomProfile
1 , // 7: memos.api.v1.InstanceSetting.StorageSetting.storage_type:type_name -> memos.api.v1.InstanceSetting.StorageSetting.StorageType
11 , // 8: memos.api.v1.InstanceSetting.StorageSetting.s3_config:type_name -> memos.api.v1.InstanceSetting.StorageSetting.S3Config
3 , // 9: memos.api.v1.InstanceService.GetInstanceProfile:input_type -> memos.api.v1.GetInstanceProfileRequest
5 , // 10: memos.api.v1.InstanceService.GetInstanceSetting:input_type -> memos.api.v1.GetInstanceSettingRequest
6 , // 11: memos.api.v1.InstanceService.UpdateInstanceSetting:input_type -> memos.api.v1.UpdateInstanceSettingRequest
2 , // 12: memos.api.v1.InstanceService.GetInstanceProfile:output_type -> memos.api.v1.InstanceProfile
4 , // 13: memos.api.v1.InstanceService.GetInstanceSetting:output_type -> memos.api.v1.InstanceSetting
4 , // 14: memos.api.v1.InstanceService.UpdateInstanceSetting:output_type -> memos.api.v1.InstanceSetting
12 , // [12:15] is the sub-list for method output_type
9 , // [9:12] is the sub-list for method input_type
9 , // [9:9] is the sub-list for extension type_name
9 , // [9:9] is the sub-list for extension extendee
0 , // [0:9] is the sub-list for field type_name
}
func init ( ) { file_api_v1_instance_service_proto_init ( ) }
@ -1000,6 +1001,7 @@ func file_api_v1_instance_service_proto_init() {
if File_api_v1_instance_service_proto != nil {
return
}
file_api_v1_user_service_proto_init ( )
file_api_v1_instance_service_proto_msgTypes [ 2 ] . OneofWrappers = [ ] any {
( * InstanceSetting_GeneralSetting_ ) ( nil ) ,
( * InstanceSetting_StorageSetting_ ) ( nil ) ,