Skip to content

Commit

Permalink
Merge pull request #251 from UN-OCHA/release/v4.6.5
Browse files Browse the repository at this point in the history
📦️ Prepare release v4.6.5 and deploy to stage
  • Loading branch information
enxtur authored May 8, 2024
2 parents 56033a4 + 4738f87 commit e6f99a9
Show file tree
Hide file tree
Showing 3 changed files with 26 additions and 12 deletions.
1 change: 1 addition & 0 deletions config/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,7 @@ export const CONFIG = {
name: process.env.NODE_ENV,
authBaseUrl: process.env.AUTHBASE_URL,
db: {
batchLimit: 32_768, // 2^15,
connection: process.env.POSTGRES_SERVER,
logging: !!parseInt(process.env.POSTGRES_LOGGING ?? ''),
poolMin: 2,
Expand Down
2 changes: 1 addition & 1 deletion package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "hpc-api",
"version": "4.6.4",
"version": "4.6.5",
"description": "api for HPC applications",
"main": "src/server.ts",
"license": "MIT",
Expand Down
35 changes: 24 additions & 11 deletions src/common-libs/plan/versioning.ts
Original file line number Diff line number Diff line change
Expand Up @@ -40,6 +40,8 @@ import {
createBrandedValue,
type Brand,
} from '@unocha/hpc-api-core/src/util/types';
import { chunk } from 'lodash';
import { CONFIG } from '../../../config';

// eslint-disable-next-line @typescript-eslint/no-explicit-any
type AnyModelId = Brand<number, any, any>;
Expand Down Expand Up @@ -257,18 +259,29 @@ const updateBaseAndVersionModelTags = async (
},
skipValidation: skipAttachmentsAndMeasurementsValidation(tableName),
});
await versionModel.update({
values: {
latestTaggedVersion: false,
...(tag.public ? { currentVersion: false } : {}),
},
where: {
id: {
[models.Op.IN]: oldVersions.map((v) => v.id as AnyModelId),
/**
* We have to limit the number of parameters that can be passed to a query.
* Limit is 32768 (2^15) which is batchLimit in the config file.
* latestTaggedVersion, currentVersion, and updatedAt is also included in the parameters
* so we subtract 3 from the limit to get the maximum number of parameters that can be passed to a query
*/
for (const chunkedOldVersionModelIDs of chunk(
oldVersions.map((v) => v.id as AnyModelId),
CONFIG.db.batchLimit - 3
)) {
await versionModel.update({
values: {
latestTaggedVersion: false,
...(tag.public ? { currentVersion: false } : {}),
},
},
skipValidation: skipAttachmentsAndMeasurementsValidation(tableName),
});
where: {
id: {
[models.Op.IN]: chunkedOldVersionModelIDs,
},
},
skipValidation: skipAttachmentsAndMeasurementsValidation(tableName),
});
}
};

const updateBaseModelTags = async (
Expand Down

0 comments on commit e6f99a9

Please sign in to comment.