@budibase/backend-core 2.32.4 → 2.32.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.js +38 -11
- package/dist/index.js.map +2 -2
- package/dist/index.js.meta.json +1 -1
- package/dist/package.json +4 -4
- package/dist/plugins.js.map +1 -1
- package/dist/plugins.js.meta.json +1 -1
- package/dist/src/environment.d.ts +1 -0
- package/dist/src/environment.js +1 -1
- package/dist/src/environment.js.map +1 -1
- package/dist/src/features/index.js +4 -1
- package/dist/src/features/index.js.map +1 -1
- package/dist/src/sql/sql.js +38 -6
- package/dist/src/sql/sql.js.map +1 -1
- package/package.json +4 -4
- package/src/environment.ts +1 -0
- package/src/features/index.ts +6 -1
- package/src/features/tests/features.spec.ts +1 -0
- package/src/sql/sql.ts +45 -10
package/dist/index.js
CHANGED
|
@@ -56302,6 +56302,7 @@ var environment = {
|
|
|
56302
56302
|
POSTHOG_TOKEN: process.env.POSTHOG_TOKEN,
|
|
56303
56303
|
POSTHOG_PERSONAL_TOKEN: process.env.POSTHOG_PERSONAL_TOKEN,
|
|
56304
56304
|
POSTHOG_API_HOST: process.env.POSTHOG_API_HOST || "https://us.i.posthog.com",
|
|
56305
|
+
POSTHOG_FEATURE_FLAGS_ENABLED: process.env.POSTHOG_FEATURE_FLAGS_ENABLED,
|
|
56305
56306
|
ENABLE_ANALYTICS: process.env.ENABLE_ANALYTICS,
|
|
56306
56307
|
TENANT_FEATURE_FLAGS: process.env.TENANT_FEATURE_FLAGS,
|
|
56307
56308
|
CLOUDFRONT_CDN: process.env.CLOUDFRONT_CDN,
|
|
@@ -59815,7 +59816,7 @@ var import_posthog_node = require("posthog-node");
|
|
|
59815
59816
|
var import_dd_trace3 = __toESM(require("dd-trace"));
|
|
59816
59817
|
var posthog;
|
|
59817
59818
|
function init4(opts) {
|
|
59818
|
-
if (environment_default.POSTHOG_TOKEN && environment_default.POSTHOG_API_HOST && !environment_default.SELF_HOSTED) {
|
|
59819
|
+
if (environment_default.POSTHOG_TOKEN && environment_default.POSTHOG_API_HOST && !environment_default.SELF_HOSTED && environment_default.POSTHOG_FEATURE_FLAGS_ENABLED) {
|
|
59819
59820
|
console.log("initializing posthog client...");
|
|
59820
59821
|
posthog = new import_posthog_node.PostHog(environment_default.POSTHOG_TOKEN, {
|
|
59821
59822
|
host: environment_default.POSTHOG_API_HOST,
|
|
@@ -68058,7 +68059,6 @@ var sqlTable_default = SqlTableQueryBuilder;
|
|
|
68058
68059
|
|
|
68059
68060
|
// src/sql/sql.ts
|
|
68060
68061
|
var import_lodash3 = require("lodash");
|
|
68061
|
-
var MAX_SQS_RELATIONSHIP_FIELDS = 63;
|
|
68062
68062
|
function getBaseLimit() {
|
|
68063
68063
|
const envLimit = environment_default.SQL_MAX_ROWS ? parseInt(environment_default.SQL_MAX_ROWS) : null;
|
|
68064
68064
|
return envLimit || 5e3;
|
|
@@ -68067,6 +68067,19 @@ function getRelationshipLimit() {
|
|
|
68067
68067
|
const envLimit = environment_default.SQL_MAX_RELATED_ROWS ? parseInt(environment_default.SQL_MAX_RELATED_ROWS) : null;
|
|
68068
68068
|
return envLimit || 500;
|
|
68069
68069
|
}
|
|
68070
|
+
function prioritisedArraySort(toSort, priorities) {
|
|
68071
|
+
return toSort.sort((a, b) => {
|
|
68072
|
+
const aPriority = priorities.find((field) => field && a.endsWith(field));
|
|
68073
|
+
const bPriority = priorities.find((field) => field && b.endsWith(field));
|
|
68074
|
+
if (aPriority && !bPriority) {
|
|
68075
|
+
return -1;
|
|
68076
|
+
}
|
|
68077
|
+
if (!aPriority && bPriority) {
|
|
68078
|
+
return 1;
|
|
68079
|
+
}
|
|
68080
|
+
return a.localeCompare(b);
|
|
68081
|
+
});
|
|
68082
|
+
}
|
|
68070
68083
|
function getTableName(table) {
|
|
68071
68084
|
if (table?.sourceType === "internal" /* INTERNAL */ || table?.sourceId === INTERNAL_TABLE_SOURCE_ID) {
|
|
68072
68085
|
return table?._id;
|
|
@@ -68707,10 +68720,20 @@ var InternalBuilder = class {
|
|
|
68707
68720
|
const separator = this.client === "oracledb" /* ORACLE */ ? " VALUE " : ",";
|
|
68708
68721
|
return `'${unaliased}'${separator}${tableField}`;
|
|
68709
68722
|
}
|
|
68723
|
+
maxFunctionParameters() {
|
|
68724
|
+
switch (this.client) {
|
|
68725
|
+
case "sqlite3" /* SQL_LITE */:
|
|
68726
|
+
return 127;
|
|
68727
|
+
case "pg" /* POSTGRES */:
|
|
68728
|
+
return 100;
|
|
68729
|
+
default:
|
|
68730
|
+
return 200;
|
|
68731
|
+
}
|
|
68732
|
+
}
|
|
68710
68733
|
addJsonRelationships(query, fromTable, relationships) {
|
|
68711
68734
|
const sqlClient = this.client;
|
|
68712
68735
|
const knex3 = this.knex;
|
|
68713
|
-
const { resource, tableAliases: aliases, endpoint } = this.query;
|
|
68736
|
+
const { resource, tableAliases: aliases, endpoint, meta } = this.query;
|
|
68714
68737
|
const fields = resource?.fields || [];
|
|
68715
68738
|
for (let relationship of relationships) {
|
|
68716
68739
|
const {
|
|
@@ -68724,20 +68747,24 @@ var InternalBuilder = class {
|
|
|
68724
68747
|
if (!toTable || !fromTable) {
|
|
68725
68748
|
continue;
|
|
68726
68749
|
}
|
|
68750
|
+
const relatedTable = meta.tables?.[toTable];
|
|
68727
68751
|
const toAlias = aliases?.[toTable] || toTable, fromAlias = aliases?.[fromTable] || fromTable;
|
|
68728
68752
|
let toTableWithSchema = this.tableNameWithSchema(toTable, {
|
|
68729
68753
|
alias: toAlias,
|
|
68730
68754
|
schema: endpoint.schema
|
|
68731
68755
|
});
|
|
68732
|
-
|
|
68733
|
-
|
|
68756
|
+
const requiredFields = [
|
|
68757
|
+
...relatedTable?.primary || [],
|
|
68758
|
+
relatedTable?.primaryDisplay
|
|
68759
|
+
].filter((field) => field);
|
|
68760
|
+
let relationshipFields = prioritisedArraySort(
|
|
68761
|
+
fields.filter((field) => field.split(".")[0] === toAlias),
|
|
68762
|
+
requiredFields
|
|
68763
|
+
);
|
|
68764
|
+
relationshipFields = relationshipFields.slice(
|
|
68765
|
+
0,
|
|
68766
|
+
Math.floor(this.maxFunctionParameters() / 2)
|
|
68734
68767
|
);
|
|
68735
|
-
if (this.client === "sqlite3" /* SQL_LITE */) {
|
|
68736
|
-
relationshipFields = relationshipFields.slice(
|
|
68737
|
-
0,
|
|
68738
|
-
MAX_SQS_RELATIONSHIP_FIELDS
|
|
68739
|
-
);
|
|
68740
|
-
}
|
|
68741
68768
|
const fieldList = relationshipFields.map((field) => this.buildJsonField(field)).join(",");
|
|
68742
68769
|
const primaryKey = `${toAlias}.${toPrimary || toKey}`;
|
|
68743
68770
|
let subQuery = knex3.from(toTableWithSchema).limit(getRelationshipLimit()).orderBy(primaryKey);
|