diff --git a/docs/budibase-0.2.11.tgz b/docs/budibase-0.2.11.tgz index 01275c7f2..fca9162a4 100644 Binary files a/docs/budibase-0.2.11.tgz and b/docs/budibase-0.2.11.tgz differ diff --git a/docs/index.yaml b/docs/index.yaml index fc0bb7676..3137d315d 100644 --- a/docs/index.yaml +++ b/docs/index.yaml @@ -3,7 +3,7 @@ entries: budibase: - apiVersion: v2 appVersion: 1.0.214 - created: "2022-08-11T08:17:23.591507539Z" + created: "2022-08-22T09:45:01.181043604Z" dependencies: - condition: services.couchdb.enabled name: couchdb @@ -15,7 +15,7 @@ entries: version: 4.0.13 description: Budibase is an open source low-code platform, helping thousands of teams build apps for their workplace in minutes. - digest: c0700fda323390bcf44ae30b1dad7eb283c7dc2f44e6ffa56d1b7da87b54111e + digest: 028e2368666562087fc3859e1b4437c964eb6c768079da4dc4bbdef62a25539f keywords: - low-code - database @@ -30,7 +30,7 @@ entries: version: 0.2.11 - apiVersion: v2 appVersion: 1.0.48 - created: "2022-08-11T08:17:23.585561431Z" + created: "2022-08-22T09:45:01.176093739Z" dependencies: - condition: services.couchdb.enabled name: couchdb @@ -57,7 +57,7 @@ entries: version: 0.2.10 - apiVersion: v2 appVersion: 1.0.48 - created: "2022-08-11T08:17:23.622578804Z" + created: "2022-08-22T09:45:01.223286351Z" dependencies: - condition: services.couchdb.enabled name: couchdb @@ -84,7 +84,7 @@ entries: version: 0.2.9 - apiVersion: v2 appVersion: 1.0.48 - created: "2022-08-11T08:17:23.618746434Z" + created: "2022-08-22T09:45:01.217160872Z" dependencies: - condition: services.couchdb.enabled name: couchdb @@ -111,7 +111,7 @@ entries: version: 0.2.8 - apiVersion: v2 appVersion: 1.0.48 - created: "2022-08-11T08:17:23.613430637Z" + created: "2022-08-22T09:45:01.21239401Z" dependencies: - condition: services.couchdb.enabled name: couchdb @@ -138,7 +138,7 @@ entries: version: 0.2.7 - apiVersion: v2 appVersion: 1.0.48 - created: "2022-08-11T08:17:23.609436365Z" + created: "2022-08-22T09:45:01.207604648Z" dependencies: - condition: services.couchdb.enabled name: couchdb @@ -165,7 +165,7 @@ entries: version: 0.2.6 - apiVersion: v2 appVersion: 1.0.25 - created: "2022-08-11T08:17:23.605537594Z" + created: "2022-08-22T09:45:01.198275727Z" dependencies: - condition: services.couchdb.enabled name: couchdb @@ -192,7 +192,7 @@ entries: version: 0.2.5 - apiVersion: v2 appVersion: 1.0.20 - created: "2022-08-11T08:17:23.599950792Z" + created: "2022-08-22T09:45:01.191494839Z" dependencies: - condition: services.couchdb.enabled name: couchdb @@ -219,7 +219,7 @@ entries: version: 0.2.4 - apiVersion: v2 appVersion: 0.9.169 - created: "2022-08-11T08:17:23.595632114Z" + created: "2022-08-22T09:45:01.18691878Z" dependencies: - condition: services.couchdb.enabled name: couchdb @@ -246,7 +246,7 @@ entries: version: 0.2.2 - apiVersion: v2 appVersion: 0.9.163 - created: "2022-08-11T08:17:23.581614959Z" + created: "2022-08-22T09:45:01.171046174Z" dependencies: - condition: services.couchdb.enabled name: couchdb @@ -273,7 +273,7 @@ entries: version: 0.2.1 - apiVersion: v2 appVersion: 0.9.163 - created: "2022-08-11T08:17:23.578094695Z" + created: "2022-08-22T09:45:01.164907194Z" dependencies: - condition: services.couchdb.enabled name: couchdb @@ -300,7 +300,7 @@ entries: version: 0.2.0 - apiVersion: v2 appVersion: 0.9.56 - created: "2022-08-11T08:17:23.573152205Z" + created: "2022-08-22T09:45:01.160807141Z" dependencies: - condition: services.couchdb.enabled name: couchdb @@ -326,7 +326,7 @@ entries: version: 0.1.1 - apiVersion: v2 appVersion: 0.9.56 - created: "2022-08-11T08:17:23.569097331Z" + created: "2022-08-22T09:45:01.156467385Z" dependencies: - condition: services.couchdb.enabled name: couchdb @@ -350,4 +350,4 @@ entries: urls: - budibase-0.1.0.tgz version: 0.1.0 -generated: "2022-08-11T08:17:23.565078758Z" +generated: "2022-08-22T09:45:01.150533508Z" diff --git a/packages/types/dist/sdk/datasources.d.ts b/packages/types/dist/sdk/datasources.d.ts new file mode 100644 index 000000000..a31e5a55c --- /dev/null +++ b/packages/types/dist/sdk/datasources.d.ts @@ -0,0 +1,109 @@ +import { Table } from "../documents"; +export declare enum Operation { + CREATE = "CREATE", + READ = "READ", + UPDATE = "UPDATE", + DELETE = "DELETE", + BULK_CREATE = "BULK_CREATE", + CREATE_TABLE = "CREATE_TABLE", + UPDATE_TABLE = "UPDATE_TABLE", + DELETE_TABLE = "DELETE_TABLE" +} +export declare enum SortDirection { + ASCENDING = "ASCENDING", + DESCENDING = "DESCENDING" +} +export declare enum QueryType { + SQL = "sql", + JSON = "json", + FIELDS = "fields" +} +export declare enum DatasourceFieldType { + STRING = "string", + LONGFORM = "longForm", + BOOLEAN = "boolean", + NUMBER = "number", + PASSWORD = "password", + LIST = "list", + OBJECT = "object", + JSON = "json", + FILE = "file" +} +export declare enum SourceName { + POSTGRES = "POSTGRES", + DYNAMODB = "DYNAMODB", + MONGODB = "MONGODB", + ELASTICSEARCH = "ELASTICSEARCH", + COUCHDB = "COUCHDB", + SQL_SERVER = "SQL_SERVER", + S3 = "S3", + AIRTABLE = "AIRTABLE", + MYSQL = "MYSQL", + ARANGODB = "ARANGODB", + REST = "REST", + ORACLE = "ORACLE", + GOOGLE_SHEETS = "GOOGLE_SHEETS", + FIRESTORE = "FIRESTORE", + REDIS = "REDIS", + SNOWFLAKE = "SNOWFLAKE", + UNKNOWN = "unknown" +} +export declare enum IncludeRelationship { + INCLUDE = 1, + EXCLUDE = 0 +} +export declare enum FilterType { + STRING = "string", + FUZZY = "fuzzy", + RANGE = "range", + EQUAL = "equal", + NOT_EQUAL = "notEqual", + EMPTY = "empty", + NOT_EMPTY = "notEmpty", + ONE_OF = "oneOf" +} +export interface QueryDefinition { + type: QueryType; + displayName?: string; + readable?: boolean; + customisable?: boolean; + fields?: object; + urlDisplay?: boolean; +} +export interface ExtraQueryConfig { + [key: string]: { + displayName: string; + type: string; + required: boolean; + data?: object; + }; +} +export interface Integration { + docs: string; + plus?: boolean; + auth?: { + type: string; + }; + relationships?: boolean; + description: string; + friendlyName: string; + type?: string; + datasource: {}; + query: { + [key: string]: QueryDefinition; + }; + extra?: ExtraQueryConfig; +} +export interface IntegrationBase { + create?(query: any): Promise; + read?(query: any): Promise; + update?(query: any): Promise; + delete?(query: any): Promise; +} +export interface DatasourcePlus extends IntegrationBase { + tables: Record; + schemaErrors: Record; + getBindingIdentifier(): string; + getStringConcat(parts: string[]): string; + buildSchema(datasourceId: string, entities: Record): any; +} diff --git a/packages/types/dist/sdk/datasources.js b/packages/types/dist/sdk/datasources.js new file mode 100644 index 000000000..6eb1cc925 --- /dev/null +++ b/packages/types/dist/sdk/datasources.js @@ -0,0 +1,74 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.FilterType = exports.IncludeRelationship = exports.SourceName = exports.DatasourceFieldType = exports.QueryType = exports.SortDirection = exports.Operation = void 0; +var Operation; +(function (Operation) { + Operation["CREATE"] = "CREATE"; + Operation["READ"] = "READ"; + Operation["UPDATE"] = "UPDATE"; + Operation["DELETE"] = "DELETE"; + Operation["BULK_CREATE"] = "BULK_CREATE"; + Operation["CREATE_TABLE"] = "CREATE_TABLE"; + Operation["UPDATE_TABLE"] = "UPDATE_TABLE"; + Operation["DELETE_TABLE"] = "DELETE_TABLE"; +})(Operation = exports.Operation || (exports.Operation = {})); +var SortDirection; +(function (SortDirection) { + SortDirection["ASCENDING"] = "ASCENDING"; + SortDirection["DESCENDING"] = "DESCENDING"; +})(SortDirection = exports.SortDirection || (exports.SortDirection = {})); +var QueryType; +(function (QueryType) { + QueryType["SQL"] = "sql"; + QueryType["JSON"] = "json"; + QueryType["FIELDS"] = "fields"; +})(QueryType = exports.QueryType || (exports.QueryType = {})); +var DatasourceFieldType; +(function (DatasourceFieldType) { + DatasourceFieldType["STRING"] = "string"; + DatasourceFieldType["LONGFORM"] = "longForm"; + DatasourceFieldType["BOOLEAN"] = "boolean"; + DatasourceFieldType["NUMBER"] = "number"; + DatasourceFieldType["PASSWORD"] = "password"; + DatasourceFieldType["LIST"] = "list"; + DatasourceFieldType["OBJECT"] = "object"; + DatasourceFieldType["JSON"] = "json"; + DatasourceFieldType["FILE"] = "file"; +})(DatasourceFieldType = exports.DatasourceFieldType || (exports.DatasourceFieldType = {})); +var SourceName; +(function (SourceName) { + SourceName["POSTGRES"] = "POSTGRES"; + SourceName["DYNAMODB"] = "DYNAMODB"; + SourceName["MONGODB"] = "MONGODB"; + SourceName["ELASTICSEARCH"] = "ELASTICSEARCH"; + SourceName["COUCHDB"] = "COUCHDB"; + SourceName["SQL_SERVER"] = "SQL_SERVER"; + SourceName["S3"] = "S3"; + SourceName["AIRTABLE"] = "AIRTABLE"; + SourceName["MYSQL"] = "MYSQL"; + SourceName["ARANGODB"] = "ARANGODB"; + SourceName["REST"] = "REST"; + SourceName["ORACLE"] = "ORACLE"; + SourceName["GOOGLE_SHEETS"] = "GOOGLE_SHEETS"; + SourceName["FIRESTORE"] = "FIRESTORE"; + SourceName["REDIS"] = "REDIS"; + SourceName["SNOWFLAKE"] = "SNOWFLAKE"; + SourceName["UNKNOWN"] = "unknown"; +})(SourceName = exports.SourceName || (exports.SourceName = {})); +var IncludeRelationship; +(function (IncludeRelationship) { + IncludeRelationship[IncludeRelationship["INCLUDE"] = 1] = "INCLUDE"; + IncludeRelationship[IncludeRelationship["EXCLUDE"] = 0] = "EXCLUDE"; +})(IncludeRelationship = exports.IncludeRelationship || (exports.IncludeRelationship = {})); +var FilterType; +(function (FilterType) { + FilterType["STRING"] = "string"; + FilterType["FUZZY"] = "fuzzy"; + FilterType["RANGE"] = "range"; + FilterType["EQUAL"] = "equal"; + FilterType["NOT_EQUAL"] = "notEqual"; + FilterType["EMPTY"] = "empty"; + FilterType["NOT_EMPTY"] = "notEmpty"; + FilterType["ONE_OF"] = "oneOf"; +})(FilterType = exports.FilterType || (exports.FilterType = {})); +//# sourceMappingURL=datasources.js.map \ No newline at end of file diff --git a/packages/types/dist/sdk/datasources.js.map b/packages/types/dist/sdk/datasources.js.map new file mode 100644 index 000000000..2d4ba1a48 --- /dev/null +++ b/packages/types/dist/sdk/datasources.js.map @@ -0,0 +1 @@ +{"version":3,"file":"datasources.js","sourceRoot":"","sources":["../../src/sdk/datasources.ts"],"names":[],"mappings":";;;AAEA,IAAY,SASX;AATD,WAAY,SAAS;IACnB,8BAAiB,CAAA;IACjB,0BAAa,CAAA;IACb,8BAAiB,CAAA;IACjB,8BAAiB,CAAA;IACjB,wCAA2B,CAAA;IAC3B,0CAA6B,CAAA;IAC7B,0CAA6B,CAAA;IAC7B,0CAA6B,CAAA;AAC/B,CAAC,EATW,SAAS,GAAT,iBAAS,KAAT,iBAAS,QASpB;AAED,IAAY,aAGX;AAHD,WAAY,aAAa;IACvB,wCAAuB,CAAA;IACvB,0CAAyB,CAAA;AAC3B,CAAC,EAHW,aAAa,GAAb,qBAAa,KAAb,qBAAa,QAGxB;AAED,IAAY,SAIX;AAJD,WAAY,SAAS;IACnB,wBAAW,CAAA;IACX,0BAAa,CAAA;IACb,8BAAiB,CAAA;AACnB,CAAC,EAJW,SAAS,GAAT,iBAAS,KAAT,iBAAS,QAIpB;AAED,IAAY,mBAUX;AAVD,WAAY,mBAAmB;IAC7B,wCAAiB,CAAA;IACjB,4CAAqB,CAAA;IACrB,0CAAmB,CAAA;IACnB,wCAAiB,CAAA;IACjB,4CAAqB,CAAA;IACrB,oCAAa,CAAA;IACb,wCAAiB,CAAA;IACjB,oCAAa,CAAA;IACb,oCAAa,CAAA;AACf,CAAC,EAVW,mBAAmB,GAAnB,2BAAmB,KAAnB,2BAAmB,QAU9B;AAED,IAAY,UAkBX;AAlBD,WAAY,UAAU;IACpB,mCAAqB,CAAA;IACrB,mCAAqB,CAAA;IACrB,iCAAmB,CAAA;IACnB,6CAA+B,CAAA;IAC/B,iCAAmB,CAAA;IACnB,uCAAyB,CAAA;IACzB,uBAAS,CAAA;IACT,mCAAqB,CAAA;IACrB,6BAAe,CAAA;IACf,mCAAqB,CAAA;IACrB,2BAAa,CAAA;IACb,+BAAiB,CAAA;IACjB,6CAA+B,CAAA;IAC/B,qCAAuB,CAAA;IACvB,6BAAe,CAAA;IACf,qCAAuB,CAAA;IACvB,iCAAmB,CAAA;AACrB,CAAC,EAlBW,UAAU,GAAV,kBAAU,KAAV,kBAAU,QAkBrB;AAED,IAAY,mBAGX;AAHD,WAAY,mBAAmB;IAC7B,mEAAW,CAAA;IACX,mEAAW,CAAA;AACb,CAAC,EAHW,mBAAmB,GAAnB,2BAAmB,KAAnB,2BAAmB,QAG9B;AAED,IAAY,UASX;AATD,WAAY,UAAU;IACpB,+BAAiB,CAAA;IACjB,6BAAe,CAAA;IACf,6BAAe,CAAA;IACf,6BAAe,CAAA;IACf,oCAAsB,CAAA;IACtB,6BAAe,CAAA;IACf,oCAAsB,CAAA;IACtB,8BAAgB,CAAA;AAClB,CAAC,EATW,UAAU,GAAV,kBAAU,KAAV,kBAAU,QASrB"} \ No newline at end of file diff --git a/packages/types/dist/sdk/search.d.ts b/packages/types/dist/sdk/search.d.ts new file mode 100644 index 000000000..3846449c2 --- /dev/null +++ b/packages/types/dist/sdk/search.d.ts @@ -0,0 +1,84 @@ +import { Operation, SortDirection } from "./datasources"; +import { Row, Table } from "../documents"; +export interface SearchFilters { + allOr?: boolean; + string?: { + [key: string]: string; + }; + fuzzy?: { + [key: string]: string; + }; + range?: { + [key: string]: { + high: number | string; + low: number | string; + }; + }; + equal?: { + [key: string]: any; + }; + notEqual?: { + [key: string]: any; + }; + empty?: { + [key: string]: any; + }; + notEmpty?: { + [key: string]: any; + }; + oneOf?: { + [key: string]: any[]; + }; + contains?: { + [key: string]: any; + }; +} +export interface SortJson { + [key: string]: SortDirection; +} +export interface PaginationJson { + limit: number; + page?: string | number; +} +export interface RenameColumn { + old: string; + updated: string; +} +export interface RelationshipsJson { + through?: string; + from?: string; + to?: string; + fromPrimary?: string; + toPrimary?: string; + tableName: string; + column: string; +} +export interface QueryJson { + endpoint: { + datasourceId: string; + entityId: string; + operation: Operation; + schema?: string; + }; + resource: { + fields: string[]; + }; + filters?: SearchFilters; + sort?: SortJson; + paginate?: PaginationJson; + body?: Row | Row[]; + table?: Table; + meta?: { + table?: Table; + tables?: Record; + renamed: RenameColumn; + }; + extra?: { + idFilter?: SearchFilters; + }; + relationships?: RelationshipsJson[]; +} +export interface SqlQuery { + sql: string; + bindings?: string[]; +} diff --git a/packages/types/dist/sdk/search.js b/packages/types/dist/sdk/search.js new file mode 100644 index 000000000..7434e64cd --- /dev/null +++ b/packages/types/dist/sdk/search.js @@ -0,0 +1,3 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +//# sourceMappingURL=search.js.map \ No newline at end of file diff --git a/packages/types/dist/sdk/search.js.map b/packages/types/dist/sdk/search.js.map new file mode 100644 index 000000000..48f385963 --- /dev/null +++ b/packages/types/dist/sdk/search.js.map @@ -0,0 +1 @@ +{"version":3,"file":"search.js","sourceRoot":"","sources":["../../src/sdk/search.ts"],"names":[],"mappings":""} \ No newline at end of file