127.0.
智能大石头 authored at 2024-11-20 00:19:29
22.64 KiB
Stardust
<?xml version="1.0" encoding="utf-8"?>
<EntityModel xmlns:xs="http://www.w3.org/2001/XMLSchema-instance" xs:schemaLocation="https://newlifex.com https://newlifex.com/Model202407.xsd" Document="https://newlifex.com/xcode/model" xmlns="https://newlifex.com/Model202407.xsd">
  <Option>
    <!--类名模板。其中{name}替换为Table.Name,如{name}Model/I{name}Dto等-->
    <ClassNameTemplate />
    <!--显示名模板。其中{displayName}替换为Table.DisplayName-->
    <DisplayNameTemplate />
    <!--基类。可能包含基类和接口,其中{name}替换为Table.Name-->
    <BaseClass />
    <!--命名空间-->
    <Namespace>Stardust.Data</Namespace>
    <!--输出目录-->
    <Output>.\</Output>
    <!--是否使用中文文件名。默认false-->
    <ChineseFileName>False</ChineseFileName>
    <!--用于生成Copy函数的参数类型。例如{name}或I{name}-->
    <ModelNameForCopy />
    <!--带有索引器。实现IModel接口-->
    <HasIModel>False</HasIModel>
    <!--可为null上下文。生成String?等-->
    <Nullable>False</Nullable>
    <!--数据库连接名-->
    <ConnName>Stardust</ConnName>
    <!--模型类模版。设置后生成模型类,用于接口数据传输,例如{name}Model-->
    <ModelClass />
    <!--模型类输出目录。默认当前目录的Models子目录-->
    <ModelsOutput>.\Models\</ModelsOutput>
    <!--模型接口模版。设置后生成模型接口,用于约束模型类和实体类,例如I{name}-->
    <ModelInterface />
    <!--模型接口输出目录。默认当前目录的Interfaces子目录-->
    <InterfacesOutput>.\Interfaces\</InterfacesOutput>
    <!--用户实体转为模型类的模型类。例如{name}或{name}DTO-->
    <ModelNameForToModel />
    <!--命名格式。Default/Upper/Lower/Underline-->
    <NameFormat>Default</NameFormat>
    <!--魔方区域显示名-->
    <DisplayName />
    <!--魔方控制器输出目录-->
    <CubeOutput>../../Stardust.Web/Areas/Registry</CubeOutput>
  </Option>
  <Tables>
    <Table Name="App" TableName="StarApp" Description="应用系统。服务提供者和消费者">
      <Columns>
        <Column Name="Id" DataType="Int32" Identity="True" PrimaryKey="True" Description="编号" />
        <Column Name="ProjectId" DataType="Int32" Map="Stardust.Data.Platform.GalaxyProject@Id@Name" Description="项目。资源归属的团队" />
        <Column Name="Name" DataType="String" Master="True" Nullable="False" Description="名称" />
        <Column Name="DisplayName" DataType="String" Description="显示名" />
        <Column Name="Secret" DataType="String" Description="密钥" />
        <Column Name="Category" DataType="String" Description="类别" />
        <Column Name="Enable" DataType="Boolean" Description="启用" />
        <Column Name="AutoActive" DataType="Boolean" Description="自动激活。自动激活启用该应用在注册中心提供的服务,供其它消费者使用" />
        <Column Name="Version" DataType="String" Description="版本。多版本实例使用时,仅记录最大版本" />
        <Column Name="Compile" DataType="DateTime" Description="编译时间。最大版本应用的编译时间" />
        <Column Name="Period" DataType="Int32" Description="采样周期。应用定期采样并上报性能数据,默认60秒" />
        <Column Name="Singleton" DataType="Boolean" Description="单例。每个节点只部署一个实例,多节点多实例,此时使用本地IP作为唯一标识,便于管理实例" />
        <Column Name="WhiteIPs" DataType="String" Description="IP白名单。符合条件的来源IP才允许访问,支持*通配符,多个逗号隔开" Category="安全告警" />
        <Column Name="BlackIPs" DataType="String" Description="IP黑名单。符合条件的来源IP禁止访问,支持*通配符,多个逗号隔开" Category="安全告警" />
        <Column Name="WebHook" DataType="String" Length="500" Description="告警机器人。钉钉、企业微信等" Category="安全告警" />
        <Column Name="AlarmOnOffline" DataType="Boolean" Description="下线告警。节点下线时,发送告警" Category="安全告警" />
        <Column Name="LastLogin" DataType="DateTime" Description="最后登录" />
        <Column Name="LastIP" DataType="String" Description="最后IP" />
        <Column Name="AllowControlNodes" DataType="String" Description="节点控制。安全性设计,允许该应用发指令控制的目标节点编码或目标应用名称,多节点逗号分隔,*表示全部节点" Category="安全告警" />
        <Column Name="Remark" DataType="String" Length="500" Description="内容" Category="扩展" />
        <Column Name="CreateUser" DataType="String" Description="创建者" Category="扩展" />
        <Column Name="CreateUserID" DataType="Int32" Description="创建者" Category="扩展" />
        <Column Name="CreateTime" DataType="DateTime" Description="创建时间" Category="扩展" />
        <Column Name="CreateIP" DataType="String" Description="创建地址" Category="扩展" />
        <Column Name="UpdateUser" DataType="String" Description="更新者" Category="扩展" />
        <Column Name="UpdateUserID" DataType="Int32" Description="更新者" Category="扩展" />
        <Column Name="UpdateTime" DataType="DateTime" Description="更新时间" Category="扩展" />
        <Column Name="UpdateIP" DataType="String" Description="更新地址" Category="扩展" />
      </Columns>
      <Indexes>
        <Index Columns="Name" Unique="True" />
        <Index Columns="ProjectId" />
      </Indexes>
    </Table>
    <Table Name="AppOnline" Description="应用在线。一个应用有多个部署,每个在线会话对应一个服务地址" ConnName="StardustData">
      <Columns>
        <Column Name="Id" DataType="Int32" Identity="True" PrimaryKey="True" Description="编号" />
        <Column Name="ProjectId" DataType="Int32" Map="Stardust.Data.Platform.GalaxyProject@Id@Name" Description="项目。资源归属的团队" />
        <Column Name="Category" DataType="String" Description="类别" />
        <Column Name="AppId" DataType="Int32" Description="应用" />
        <Column Name="Name" DataType="String" Master="True" Description="名称。应用名称" />
        <Column Name="NodeId" DataType="Int32" Description="节点。节点服务器" />
        <Column Name="Client" DataType="String" Description="客户端。IP加进程,不同应用的Client可能相同,但几率很低,暂不考虑" />
        <Column Name="Scope" DataType="String" Description="作用域" />
        <Column Name="Version" DataType="String" Description="版本。客户端" />
        <Column Name="Compile" DataType="DateTime" Description="编译时间。客户端" />
        <Column Name="PingCount" DataType="Int32" Description="心跳" />
        <Column Name="WorkerId" DataType="Int32" Description="雪花标识。应用内唯一标识该节点" />
        <Column Name="WebSocket" DataType="Boolean" Description="长连接。WebSocket长连接" />
        <Column Name="ProcessId" DataType="Int32" Description="进程" />
        <Column Name="ProcessName" DataType="String" Length="200" Description="进程名称" />
        <Column Name="CommandLine" DataType="String" Length="500" Description="命令行" />
        <Column Name="UserName" DataType="String" Description="用户名。启动该进程的用户名" />
        <Column Name="MachineName" DataType="String" Description="机器名" />
        <Column Name="StartTime" DataType="DateTime" Description="进程时间" />
        <Column Name="IP" DataType="String" Length="200" Description="本地IP。节点本地IP地址" />
        <Column Name="Listens" DataType="String" Length="200" Description="监听端口。网络端口监听信息" />
        <Column Name="Token" DataType="String" Length="500" Description="令牌" />
        <Column Name="TraceId" DataType="String" Description="追踪。最新一次查看采样,可用于关联多个片段,建立依赖关系,随线程上下文、Http、Rpc传递" Category="扩展" />
        <Column Name="Creator" DataType="String" Description="创建者。服务端节点" Category="扩展" />
        <Column Name="CreateTime" DataType="DateTime" Description="创建时间" Category="扩展" />
        <Column Name="CreateIP" DataType="String" Description="创建地址" Category="扩展" />
        <Column Name="UpdateTime" DataType="DateTime" Description="更新时间" Category="扩展" />
        <Column Name="UpdateIP" DataType="String" Description="更新地址" Category="扩展" />
      </Columns>
      <Indexes>
        <Index Columns="Client" Unique="True" />
        <Index Columns="ProjectId" />
        <Index Columns="AppId,IP" />
        <Index Columns="Token" />
        <Index Columns="IP" />
        <Index Columns="UpdateTime" />
      </Indexes>
    </Table>
    <Table Name="AppHistory" Description="应用历史" ConnName="StardustData">
      <Columns>
        <Column Name="Id" DataType="Int64" PrimaryKey="True" DataScale="time" Description="编号" />
        <Column Name="AppId" DataType="Int32" Description="应用" />
        <Column Name="Client" DataType="String" Description="客户端。IP加进程" />
        <Column Name="Version" DataType="String" Description="版本。客户端实例版本" />
        <Column Name="Action" DataType="String" Description="操作" />
        <Column Name="Success" DataType="Boolean" Description="成功" />
        <Column Name="TraceId" DataType="String" Description="追踪。最新一次查看采样,可用于关联多个片段,建立依赖关系,随线程上下文、Http、Rpc传递" Category="扩展" />
        <Column Name="Creator" DataType="String" Description="创建者。服务端节点" Category="扩展" />
        <Column Name="CreateTime" DataType="DateTime" Description="创建时间" Category="扩展" />
        <Column Name="CreateIP" DataType="String" Description="创建地址" Category="扩展" />
        <Column Name="Remark" DataType="String" Length="2000" Description="内容" />
      </Columns>
      <Indexes>
        <Index Columns="AppId,Client" />
        <Index Columns="AppId,Action" />
        <Index Columns="Action,Success" />
      </Indexes>
    </Table>
    <Table Name="AppCommand" Description="应用命令" ConnName="StardustData">
      <Columns>
        <Column Name="Id" DataType="Int32" Identity="True" PrimaryKey="True" Description="编号" />
        <Column Name="AppId" DataType="Int32" Description="应用" />
        <Column Name="Command" DataType="String" Master="True" Description="命令" />
        <Column Name="Argument" DataType="String" Length="500" Description="参数" />
        <Column Name="StartTime" DataType="DateTime" Description="开始执行时间。用于提前下发指令后延期执行,暂时不支持取消" />
        <Column Name="Expire" DataType="DateTime" Description="过期时间。未指定时表示不限制" />
        <Column Name="Status" DataType="Int32" Description="状态。命令状态" Type="NewLife.Remoting.Models.CommandStatus" />
        <Column Name="Times" DataType="Int32" Description="次数。一共执行多少次,超过10次后取消" />
        <Column Name="Result" DataType="String" Length="500" Description="结果" />
        <Column Name="TraceId" DataType="String" Description="追踪。最新一次查看采样,可用于关联多个片段,建立依赖关系,随线程上下文、Http、Rpc传递" Category="扩展" />
        <Column Name="CreateUser" DataType="String" Description="创建者" Category="扩展" />
        <Column Name="CreateUserID" DataType="Int32" Description="创建者" Category="扩展" />
        <Column Name="CreateTime" DataType="DateTime" Description="创建时间" Category="扩展" />
        <Column Name="CreateIP" DataType="String" Description="创建地址" Category="扩展" />
        <Column Name="UpdateUserID" DataType="Int32" Description="更新者" Category="扩展" />
        <Column Name="UpdateTime" DataType="DateTime" DataScale="time" Description="更新时间" Category="扩展" />
        <Column Name="UpdateIP" DataType="String" Description="更新地址" Category="扩展" />
      </Columns>
      <Indexes>
        <Index Columns="AppId,Command" />
        <Index Columns="UpdateTime,AppId,Command" />
      </Indexes>
    </Table>
    <Table Name="AppMeter" Description="应用性能。保存应用上报的性能数据,如CPU、内存、线程、句柄等" ConnName="StardustData">
      <Columns>
        <Column Name="Id" DataType="Int64" PrimaryKey="True" DataScale="time" Description="编号" />
        <Column Name="AppId" DataType="Int32" Description="应用" />
        <Column Name="ClientId" DataType="String" Description="实例。应用可能多实例部署,ip@proccessid" />
        <Column Name="Source" DataType="String" Description="来源。数据来源,应用心跳、监控数据上报携带、远程发布后由StarAgent上报" />
        <Column Name="Memory" DataType="Int32" Description="内存。单位M" />
        <Column Name="ProcessorTime" DataType="Int32" Description="处理器。处理器时间,单位ms" />
        <Column Name="CpuUsage" DataType="Double" ItemType="percent" Description="CPU负载。处理器时间除以物理时间的占比" />
        <Column Name="Threads" DataType="Int32" Description="线程数" />
        <Column Name="WorkerThreads" DataType="Int32" Description="工作线程。线程池可用工作线程数,主要是Task使用" />
        <Column Name="IOThreads" DataType="Int32" Description="IO线程。线程池可用IO线程数,主要是网络接收所用" />
        <Column Name="Handles" DataType="Int32" Description="句柄数" />
        <Column Name="Connections" DataType="Int32" Description="连接数" />
        <Column Name="GCPause" DataType="Double" Description="GC暂停。时间占比,百分之一" />
        <Column Name="FullGC" DataType="Int32" Description="完全GC。周期时间内发生二代GC的次数" />
        <Column Name="Time" DataType="DateTime" Description="采集时间" />
        <Column Name="Creator" DataType="String" Description="创建者。服务端节点" Category="扩展" />
        <Column Name="CreateTime" DataType="DateTime" Description="创建时间" Category="扩展" />
        <Column Name="CreateIP" DataType="String" Description="创建地址" Category="扩展" />
      </Columns>
      <Indexes>
        <Index Columns="AppId,ClientId,Id" />
      </Indexes>
    </Table>
    <Table Name="Service" Description="服务信息。服务提供者发布的服务">
      <Columns>
        <Column Name="Id" DataType="Int32" Identity="True" PrimaryKey="True" Description="编号" />
        <Column Name="ProjectId" DataType="Int32" Map="Stardust.Data.Platform.GalaxyProject@Id@Name" Description="项目。资源归属的团队" />
        <Column Name="Name" DataType="String" Master="True" Nullable="False" Description="名称。服务名,提供一个地址,包含多个接口" />
        <Column Name="DisplayName" DataType="String" Description="显示名" />
        <Column Name="Category" DataType="String" Description="类别" />
        <Column Name="Enable" DataType="Boolean" Description="启用" />
        <Column Name="Extranet" DataType="Boolean" Description="外网。外网服务使用提供者公网地址进行注册" />
        <Column Name="Singleton" DataType="Boolean" Description="单例。每个节点只部署一个实例,多节点多实例,此时使用本地IP作为唯一标识,便于设置权重" />
        <Column Name="UseScope" DataType="Boolean" Description="作用域。使用作用域隔离后,消费者只能使用本作用域内的服务" />
        <Column Name="Address" DataType="String" Description="服务地址模版。固定的网关地址,或地址模版如http://{IP}:{Port},默认不填写,自动识别地址" />
        <Column Name="HealthCheck" DataType="Boolean" Description="健康监测。定时检测服务是否可用" />
        <Column Name="HealthAddress" DataType="String" Description="监测地址。健康监测接口地址,相对地址或绝对地址" />
        <Column Name="Providers" DataType="Int32" Description="提供者。数量" />
        <Column Name="Consumers" DataType="Int32" Description="消费者。数量" />
        <Column Name="CreateUser" DataType="String" Description="创建者" Category="扩展" />
        <Column Name="CreateUserID" DataType="Int32" Description="创建者" Category="扩展" />
        <Column Name="CreateTime" DataType="DateTime" Description="创建时间" Category="扩展" />
        <Column Name="CreateIP" DataType="String" Description="创建地址" Category="扩展" />
        <Column Name="UpdateUser" DataType="String" Description="更新者" Category="扩展" />
        <Column Name="UpdateUserID" DataType="Int32" Description="更新者" Category="扩展" />
        <Column Name="UpdateTime" DataType="DateTime" Description="更新时间" Category="扩展" />
        <Column Name="UpdateIP" DataType="String" Description="更新地址" Category="扩展" />
        <Column Name="Remark" DataType="String" Length="500" Description="内容" Category="扩展" />
      </Columns>
      <Indexes>
        <Index Columns="Name" Unique="True" />
        <Index Columns="ProjectId" />
      </Indexes>
    </Table>
    <Table Name="AppService" Description="应用服务。应用提供的服务">
      <Columns>
        <Column Name="Id" DataType="Int32" Identity="True" PrimaryKey="True" Description="编号" />
        <Column Name="AppId" DataType="Int32" Description="应用。提供服务的应用程序" />
        <Column Name="ServiceId" DataType="Int32" Description="服务" />
        <Column Name="ServiceName" DataType="String" Description="服务名" />
        <Column Name="Client" DataType="String" Description="客户端。由该应用实例提供服务,IP加端口" />
        <Column Name="NodeId" DataType="Int32" Description="节点。节点服务器" />
        <Column Name="Enable" DataType="Boolean" Description="启用" />
        <Column Name="PingCount" DataType="Int32" Description="心跳。应用程序定期向注册中心更新服务状态" />
        <Column Name="Version" DataType="String" Description="版本。应用程序版本号" />
        <Column Name="Address" DataType="String" Length="500" Description="地址。经地址模版处理后对外服务的地址,默认是本地局域网服务地址,如http://127.0.0.1:1234" />
        <Column Name="OriginAddress" DataType="String" Length="500" Description="原始地址。客户端上报地址,需要经服务端处理后才能对外提供服务" />
        <Column Name="Weight" DataType="Int32" Description="权重。多实例提供服务时,通过权重系数调节客户端调用各实例服务的比例" />
        <Column Name="Scope" DataType="String" Description="作用域。根据配置中心应用规则计算,禁止跨域访问服务" />
        <Column Name="Tag" DataType="String" Description="标签。带有指定特性,逗号分隔" />
        <Column Name="CheckTimes" DataType="Int32" Description="监测次数。健康监测次数" />
        <Column Name="Healthy" DataType="Boolean" Description="健康。无需健康监测,或监测后服务可用" />
        <Column Name="LastCheck" DataType="DateTime" Description="监测时间。最后一次监测时间,一段时间监测失败后禁用" />
        <Column Name="CheckResult" DataType="String" Length="2000" Description="监测结果。检测结果,错误信息等" />
        <Column Name="CreateTime" DataType="DateTime" Description="创建时间" Category="扩展" />
        <Column Name="CreateIP" DataType="String" Description="创建地址" Category="扩展" />
        <Column Name="UpdateTime" DataType="DateTime" Description="更新时间" Category="扩展" />
      </Columns>
      <Indexes>
        <Index Columns="AppId" />
        <Index Columns="ServiceId" />
        <Index Columns="UpdateTime" />
      </Indexes>
    </Table>
    <Table Name="AppConsume" Description="应用消费。应用消费的服务">
      <Columns>
        <Column Name="Id" DataType="Int32" Identity="True" PrimaryKey="True" Description="编号" />
        <Column Name="AppId" DataType="Int32" Description="应用。提供服务的应用程序" />
        <Column Name="ServiceId" DataType="Int32" Description="服务" />
        <Column Name="ServiceName" DataType="String" Description="服务名" />
        <Column Name="Client" DataType="String" Description="客户端。由该应用实例提供服务,IP加端口" />
        <Column Name="NodeId" DataType="Int32" Description="节点。节点服务器" />
        <Column Name="Enable" DataType="Boolean" Description="启用" />
        <Column Name="PingCount" DataType="Int32" Description="心跳。应用程序定期向注册中心更新服务状态" />
        <Column Name="MinVersion" DataType="String" Description="最低版本。要求返回大于等于该版本的服务提供者" />
        <Column Name="Scope" DataType="String" Description="作用域。根据配置中心应用规则计算,禁止跨域访问服务" />
        <Column Name="Tag" DataType="String" Description="标签。带有指定特性,逗号分隔" />
        <Column Name="Address" DataType="String" Length="500" Description="地址。最终消费得到的地址" />
        <Column Name="CreateTime" DataType="DateTime" Description="创建时间" Category="扩展" />
        <Column Name="CreateIP" DataType="String" Description="创建地址" Category="扩展" />
        <Column Name="UpdateTime" DataType="DateTime" Description="更新时间" Category="扩展" />
      </Columns>
      <Indexes>
        <Index Columns="AppId" />
        <Index Columns="ServiceId" />
        <Index Columns="UpdateTime" />
      </Indexes>
    </Table>
    <Table Name="AppClientLog" Description="应用日志" ConnName="StardustData">
      <Columns>
        <Column Name="Id" DataType="Int64" PrimaryKey="True" DataScale="time" Description="编号" />
        <Column Name="AppId" DataType="Int32" Master="True" Description="应用" />
        <Column Name="ClientId" DataType="String" Master="True" Description="客户端" />
        <Column Name="Time" DataType="String" Description="时间" />
        <Column Name="ThreadId" DataType="String" Description="线程" />
        <Column Name="Kind" DataType="String" Description="类型" />
        <Column Name="Name" DataType="String" Description="名称" />
        <Column Name="Message" DataType="String" Length="-1" Description="内容" />
        <Column Name="CreateTime" DataType="DateTime" Description="创建时间" Category="扩展" />
        <Column Name="CreateIP" DataType="String" Description="创建地址" Category="扩展" />
      </Columns>
      <Indexes>
        <Index Columns="AppId,ClientId,ThreadId,Id" />
        <Index Columns="AppId,Id" />
      </Indexes>
    </Table>
  </Tables>
</EntityModel>