@ultipa-graph/ultipa-node-sdk
Version:
NodeJS SDK for ultipa-server 4.0
826 lines (825 loc) • 22 kB
TypeScript
/// <reference types="node" />
import { ULTIPA } from '.';
/**
* 请求参数类型指定
*/
export declare namespace RequestParamType {
/** 选择 */
type SELECT_TYPE = string[] | string;
/** 返回 */
type RETURN_TYPE = string[] | string | string[][];
/** 深度 */
type DEPTH_TYPE = number | (number | string)[];
/** 过滤 */
type FILTER_TYPE = string;
/** 方向 */
type DIRECTION_TYPE = "left" | "right";
/** 任务 */
type TASK_STATUS = "*" | "pending" | "computing" | "writing" | "failed" | "done" | "stopped";
}
/**
* 请求参数命名空间
*/
export declare namespace RequestType {
enum TASK_STATUS {
TASK_ALL = "*",
TASK_PENDING = "pending",
TASK_COMPUTING = "computing",
TASK_WRITING = "writing",
TASK_FAILED = "failed",
TASK_DONE = "done",
TASK_STOPPED = "stopped"
}
interface Graph {
/** 图集名称 */
name: string;
}
interface GraphSet {
clusterId?: string;
id?: string;
name: string;
totalNodes?: string;
totalEdges?: string;
description?: string;
status?: string;
}
interface GetSchema {
/** schema名称 */
name: string;
}
interface DeleteSchema {
/** schema名称 */
name: string;
}
interface CreateSchemaBase {
/** schema名称 */
name: string;
/** schema介绍 */
desc?: string;
}
interface CreateSchema extends CreateSchemaBase {
/** 点或者边 */
dbType: ULTIPA.DBType;
}
interface Schema {
/** schema名称 */
name: string;
/** schema介绍 */
desc?: string;
/** 点或者边 */
dbType: ULTIPA.DBType;
}
interface UpdateSchema {
/** schema原名称 */
name: string;
/** 点或边 */
dbType: ULTIPA.DBType;
/** schema新名称 */
newName?: string;
/** schema新介绍 */
newDesc?: string;
}
interface Node {
[key: string]: any;
}
interface Edge {
[key: string]: any;
}
interface Truncate {
/** 图集名 */
graphName: string;
/** schema名 */
schema?: string;
/** 点或边 */
dbType?: ULTIPA.DBType;
}
interface CopyGraph {
/** 图集来源 */
fromGraphSetName: string;
/** 新图集名称 */
newGraphSetName: string;
}
interface UpdateGraph {
/** 原图集 */
oldGraphSetName: string;
/** 新图集名 */
newGraphSetName?: string;
/** 新图集介绍 */
newDesc?: string;
}
interface Auth {
authType: ULTIPA.AuthenticateType;
uql?: string;
}
/**
* 通用请求参数
*/
interface RequestConfig {
/** 指定图集名称,创建connection pool一开始指定的图集,如果都没有,那么默认是 default图集 */
graphSetName?: string;
/** 指定集群ID */
clusterId?: string;
/** 时区 */
timeZone?: string;
/** utc offset */
timeZoneOffset?: number;
timestampToString?: boolean;
/** 超时设置 */
timeout?: number;
threadNum?: number;
/** stream方式处理结果 */
stream?: Stream;
/** 指定重试方式 */
retry?: {
/** 当前次数 */
current?: number;
/** 最大次数 */
max?: number;
};
/** 使用指定host */
useHost?: string;
/** 使用master节点请求 */
useMaster?: boolean;
/** 每次返回包条目限制 */
package_limit?: number;
/** 是不是要刷新集群信息 */
forceRefresh?: boolean;
logUql?: boolean;
}
interface CommonStreamRequire extends RequestConfig {
/** stream方式处理结果 */
stream: Stream;
}
interface GraphPrivilege {
[x: string]: string[];
}
interface PropertyPrivilege {
node?: {
read?: string[][];
write?: string[][];
deny?: string[][];
};
edge?: {
read?: string[][];
write?: string[][];
deny?: string[][];
};
}
interface CreateUser {
/** 用户名 */
username: string;
/** 密码 */
password: string;
/** 图集权限 */
graph_privileges?: GraphPrivilege;
/** 系统权限 */
system_privileges?: string[];
/** 策略 */
policies?: string[];
/**属性权限 */
property_privileges?: PropertyPrivilege;
}
interface GetUser {
/** 用户名 */
username: string;
}
interface AlterUser {
/** 用户名 */
username: string;
/** 密码 */
password?: string;
/** 图集权限 */
graph_privileges?: GraphPrivilege;
/** 系统权限 */
system_privileges?: string[];
/** 策略 */
policies?: string[];
/**属性权限 */
property_privileges?: PropertyPrivilege;
}
interface DeleteUser {
/** 用户名 */
username: string;
}
interface Policy {
/** 策略名 */
name: string;
/** 图集权限 */
graph_privileges?: GraphPrivilege;
/** 系统权限 */
system_privileges?: string[];
/** 策略 */
policies?: string[];
/**属性权限 */
property_privileges?: PropertyPrivilege;
}
interface CreatePolicy extends Policy {
}
interface GetPolicy {
/** 策略名 */
name: string;
}
interface Kill {
/** 进程ID */
id?: string;
/** 所有进程 */
all?: boolean;
}
interface UpdatePolicy {
/** 策略名 */
name: string;
/** 图集权限 */
graph_privileges?: GraphPrivilege;
/** 系统权限 */
system_privileges?: string[];
/** 策略 */
policies?: string[];
}
interface DeletePolicy {
/** 策略名 */
name: string;
}
interface GrantPolicy {
/** 用户名 */
username: string;
/** 图集权限 */
graph_privileges?: GraphPrivilege;
/** 系统权限 */
system_privileges?: string[];
property_privileges?: PropertyPrivilege;
/** 策略 */
policies?: string[];
}
interface RevokePolicy {
/** 用户名 */
username: string;
/** 图集权限 */
graph_privileges?: GraphPrivilege;
/** 系统权限 */
system_privileges?: string[];
property_privileges?: PropertyPrivilege;
/** 策略 */
policies?: string[];
}
interface ListAllProperty {
}
interface PropertyBase {
/** schema名 */
schema?: string;
}
interface ListProperty extends PropertyBase {
/** 属性类型 */
dbType: ULTIPA.DBType;
}
interface GetProperty extends ListProperty {
/** 属性名 */
name: string;
}
interface GetNodeEdgeProperty extends PropertyBase {
/** 属性名 */
name: string;
}
interface CreatePropertyBase {
/** 属性名 */
name: string;
/** schema名 */
schema: string;
/** 类型 */
type?: ULTIPA.PropertyType;
subTypes?: ULTIPA.PropertyType[];
/** 介绍 */
description?: string;
extra?: PropertyExtraInfo;
}
interface Property extends CreatePropertyBase {
}
interface CreateProperty extends CreatePropertyBase {
/** 点边类型 */
dbType: ULTIPA.DBType;
}
interface PropertyExtraInfo {
precision?: number;
scale?: number;
}
interface DeletePropertyBase {
/** schema名称 */
schema?: string;
/** 属性名 */
name: string;
}
interface DeleteProperty extends DeletePropertyBase {
/** 数据库类型 */
dbType: ULTIPA.DBType;
}
interface UpdatePropertyBase {
/** schema名 */
schema?: string;
/** 属性名 */
name: string;
/** 新属性名 */
newName?: string;
/** 新属性介绍 */
newDesc?: string;
}
interface UpdateProperty extends UpdatePropertyBase {
/** 数据库点、边类型 */
dbType: ULTIPA.DBType;
}
interface GetUserSetting {
/** 用户名 */
username: string;
/** 指定类型 */
type?: string;
}
interface SetUserSetting extends GetUserSetting {
/** 数据 */
data?: string;
}
interface Backup {
backupPath: string;
}
/**
* 用户uql返回的数据流方式
*/
interface Stream {
/** 开始回调 */
onStart?: () => void;
/** 关闭回调 */
onClose?: () => void;
/** 获取数据 */
onData: (data: any) => void | Promise<any>;
/** 结束回调 */
onEnd: () => void;
/** 错误回调 */
onError?: (err: Error) => void;
/** 暂停回调 */
onPause?: () => void;
/** Readable回调 */
onReadable?: () => void;
/** 恢复回调 */
onResume?: () => void;
/** 包大小限制 */
package_limit?: number;
}
/**
* 用户uql返回的数据流方式
*/
interface UqlResponseStream {
/** 开始回调 */
onStart?: () => void;
/** 关闭回调 */
onClose?: () => void;
/** 获取数据 */
onData: (data: ULTIPA.UQLResponse) => Promise<void>;
/** 结束回调 */
onEnd: () => void;
/** 错误回调 */
onError?: (err: Error) => void;
/** 暂停回调 */
onPause?: () => void;
/** Readable回调 */
onReadable?: () => void;
/** 恢复回调 */
onResume?: () => void;
/** 包大小限制 */
package_limit?: number;
}
/** 导出 */
interface ExportRequest {
/** 导出类型 */
dbType: ULTIPA.DBType;
/** schema名 */
schemaName: string;
/** 条目限制 */
limit: number;
/** 属性列表 */
selectPropertiesName: string[];
}
/** 下载 */
interface DownloadBase {
/** 任务ID */
taskId: string;
}
interface Download extends DownloadBase {
/** 下载文件名 */
fileName: string;
}
/** 下载 */
interface DownloadAll extends DownloadBase {
/** 下载文件名 */
fileName?: string;
}
/** 插入点 */
interface InsertNodes {
/** schema名 */
schema: string;
/** 数据 */
rows: Node[];
/** 覆盖插入 */
overwrite?: boolean;
/** 更新插入 */
upsert?: boolean;
/** 是否返回ID */
silent?: boolean;
}
/** 插入边 */
interface InsertEdges {
/** schema名 */
schema: string;
/** 数据 */
rows: Edge[];
/** 覆盖插入 */
overwrite?: boolean;
/** 更新插入 */
upsert?: boolean;
/** 是否返回ID */
silent?: boolean;
}
/** 安装算法 */
interface _InstallAlgo {
datas: {
/** 文件字节 */
chunk: Buffer;
/** 文件名 */
fileName: string;
/** 文件md5值 */
md5: string;
}[];
isExta?: boolean;
}
interface InstallAlgo {
/** 按文件路径 */
paths?: {
/** 算法.so文件的目录 */
algoFilePath: string;
/** 算法.yml描述文件的目录 */
infoFilePath: string;
};
/** 按详细数据 */
datas?: _InstallAlgo;
}
interface InsertExta extends InstallAlgo {
}
/** 安装算法 */
interface InstallAlgoAio extends InstallAlgo {
isExta?: boolean;
}
/** 卸载算法 */
interface UninstallAlgo {
algoName: string;
}
/** 批量插入点 */
interface InsertHugeNodes {
/** schema名 */
schemaName: string;
/** 表头 */
headers: string[];
/** 数据 */
rows: any[][];
}
interface InsertRequestConfig extends RequestConfig {
insertType: ULTIPA.InsertType;
createNodeIfNotExist?: boolean;
silent: boolean;
}
/**
* 获取插入类型
*/
function GetInsertType(insertTypeNormal?: boolean, insertTypeOverwrite?: boolean, insertTypeUpsert?: boolean): 0 | 2 | 1;
/** 批量插入边 */
interface InsertHugeEdges extends InsertHugeNodes {
}
/** 查找点 */
interface SearchNodes extends SearchBase {
/** 过滤 */
filter?: string;
}
/** 查找边 */
interface SearchEdges extends SearchNodes {
}
/** 删除边 */
interface DeleteEdges {
/** 过滤 */
filter?: string;
/** 是否返回ID */
silent?: boolean;
}
/** 删除点 */
interface DeleteNodes extends DeleteEdges {
}
/** 更新点 */
interface UpdateNodes {
/** 过滤 */
filter: string;
/** 数据值 */
values: object;
}
/** 更新边 */
interface UpdateEdges extends UpdateNodes {
}
/** 清除任务 */
interface ClearTask {
/** 所有任务 */
all?: boolean;
/** 指定ID */
id?: string;
/** 指定名称 */
name?: string;
/** 任务状态 */
status?: RequestParamType.TASK_STATUS;
}
/** 显示任务 */
interface ShowTask extends ClearTask {
/** 条目限制 */
limit?: number;
}
/** 暂停任务 */
interface PauseTask {
/** 所有任务 */
all: boolean;
/** 指定ID */
id: number;
}
/** 恢复任务 */
interface ResumeTask extends PauseTask {
}
/** 暂停任务 */
interface StopTask extends PauseTask {
}
/** 创建索引 */
interface CreateIndexBase {
/** schema名称 */
schema?: string;
/** 属性名 */
propertyName: string;
}
interface CreateIndex extends CreateIndexBase {
/** 数据库类型 */
dbType: ULTIPA.DBType;
}
interface DropIndexBase extends CreateIndex {
}
interface DropIndex extends DropIndexBase {
/** 数据库类型 */
dbType: ULTIPA.DBType;
}
/** 创建全文索引 */
interface CreateFullTextBase {
/** schema名称 */
schema?: string;
/** 属性名 */
propertyName: string;
/** 全文名称 */
name: string;
}
interface CreateFullText extends CreateFullTextBase {
/** 数据库类型 */
dbType: ULTIPA.DBType;
}
/** 删除全文索引 */
interface DropFullText {
/** 全文名称 */
name: string;
/** 数据库类型 */
dbType: ULTIPA.DBType;
}
/** 属性加载到引擎 */
interface LoadToEnginBase {
/** schema名称 */
schema?: string;
/** 属性名 */
name: string;
}
interface LoadToEngin extends LoadToEnginBase {
/** 数据库类型 */
dbType: ULTIPA.DBType;
}
/** 属性从引擎卸载 */
interface UnloadFromEngin extends LoadToEngin {
}
/** 查找基类 */
interface SearchBase {
/** 别名 */
as?: string;
/** 返回 */
return?: RequestParamType.RETURN_TYPE;
/** 条目限制 */
limit?: number;
}
/** AB查找 */
interface SearchAb extends SearchBase {
/** 路径起点的过滤条件 */
src: RequestParamType.FILTER_TYPE;
/** 路径终点的过滤条件 */
dest: RequestParamType.FILTER_TYPE;
/** 设置路径的深度 */
depth: RequestParamType.DEPTH_TYPE;
/**
* 不指定边属性时,查询最短路径;
* 指定边属性时,查询以该属性为权值的最小权重和路径(无该属性的边不构成路径)
*/
shortest?: string;
/** 中介点的过滤条件 */
nodeFilter?: RequestParamType.FILTER_TYPE;
/** 所有边的过滤条件 */
edgeFilter?: RequestParamType.FILTER_TYPE;
/** 升序 */
pathAsc?: string;
/** 降序 */
pathDesc?: string;
/** 边方向 */
direction?: RequestParamType.DIRECTION_TYPE;
/** 无环设置 */
noCircle?: boolean;
}
/** 自动组网 */
interface SearchAutoNet extends SearchBase {
/** 起点 */
src: RequestParamType.FILTER_TYPE;
/** 终点 */
dest?: RequestParamType.FILTER_TYPE;
/** 深度 */
depth: RequestParamType.DEPTH_TYPE;
/** 最短路径查询 */
shortest?: string;
/** 中介点的过滤条件 */
nodeFilter?: RequestParamType.FILTER_TYPE;
/** 所有边的过滤条件 */
edgeFilter?: RequestParamType.FILTER_TYPE;
/** 无环设置 */
noCircle?: boolean;
}
/** khop查找 */
interface SearchKhop extends SearchBase {
/** 起点 */
src: RequestParamType.FILTER_TYPE;
/** 终点 */
depth: RequestParamType.DEPTH_TYPE;
/** 中介点的过滤条件 */
nodeFilter?: RequestParamType.FILTER_TYPE;
/** 所有边的过滤条件 */
edgeFilter?: RequestParamType.FILTER_TYPE;
/** 边方向 */
direction?: RequestParamType.DIRECTION_TYPE;
}
/**
* 自动展开
*/
interface Spread extends SearchBase {
/** 起点 */
src: RequestParamType.FILTER_TYPE;
/** 深度 */
depth: number;
/** 中介点的过滤条件 */
nodeFilter?: RequestParamType.FILTER_TYPE;
/** 所有边的过滤条件 */
edgeFilter?: RequestParamType.FILTER_TYPE;
/** 边方向 */
direction?: RequestParamType.DIRECTION_TYPE;
}
}
export declare namespace ResponseType {
interface GraphPrivilege {
[name: string]: string[];
}
interface PropertyPrivilege {
node?: {
read?: string[][];
write?: string[][];
deny?: string[][];
};
edge?: {
read?: string[][];
write?: string[][];
deny?: string[][];
};
}
interface Algo {
clusterId: string;
name: string;
param: {
name: string;
description: string;
parameters: object;
result_opt: string;
version: string;
};
detail: string;
result_opt: {
can_realtime: boolean;
can_write_back: boolean;
can_visualization: boolean;
};
}
interface Exta {
author: string;
detail: string;
name: string;
version: string;
}
interface User {
username: string;
create: string;
lastLogin: string;
graph_privileges: GraphPrivilege;
system_privileges: string[];
policies: string[];
property_privileges: PropertyPrivilege;
}
interface Index {
name: string;
properties: string;
status: string;
}
interface IndexMap {
nodeIndex: Index[];
edgeIndex: Index[];
}
interface Stat {
cpuUsage: string;
memUsage: string;
expiredDate: string;
}
interface ClusterInfo extends ULTIPA.RaftPeerInfo {
cpuUsage?: string;
memUsage?: string;
expiredDate?: string;
}
interface Property {
schema: string;
name: string;
type: string;
description?: string;
lte?: "false" | "creating" | "true";
extra?: RequestType.PropertyExtraInfo;
}
interface AllProperty {
node: Property[];
edge: Property[];
}
interface GraphSet {
clusterId?: string;
id: string;
name: string;
totalNodes: string;
totalEdges: string;
description: string;
status: string;
}
interface Schema {
name: string;
description: string;
properties: Property[];
totalNodes: string;
totalEdges: string;
}
interface AllSchema {
nodeSchema: Schema[];
edgeSchema: Schema[];
}
interface Privilege {
graph_privileges: string[];
system_privileges: string[];
}
interface Policy {
name: string;
policies: string[];
graph_privileges: GraphPrivilege;
system_privileges: string[];
property_privileges: PropertyPrivilege;
}
interface Top {
process_id: string;
process_uql: string;
duration: string;
}
interface InsertEdges {
uuids: string[];
ignore_indexes: number[];
ignore_error_codes: number[];
}
interface InsertNodes extends InsertEdges {
ids: string[];
}
interface Task {
param: object;
task_info: {
task_id: string;
algo_name: string;
start_time: number;
writing_start_time: number;
end_time: number;
time_cost: number;
TASK_STATUS: number;
status_code: string;
engine_cost: number;
};
error_msg: string;
result: any;
return_type: {
is_realtime: boolean;
is_visualization: boolean;
is_write_back: boolean;
};
}
}