@cumulus/db 10.1.0 → 10.1.2

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.d.ts CHANGED
@@ -18,7 +18,7 @@ export { translateApiAsyncOperationToPostgresAsyncOperation } from './translate/
18
18
  export { translateApiFiletoPostgresFile, translatePostgresFileToApiFile, } from './translate/file';
19
19
  export { translateApiCollectionToPostgresCollection } from './translate/collections';
20
20
  export { translateApiProviderToPostgresProvider, } from './translate/providers';
21
- export { translateApiRuleToPostgresRule } from './translate/rules';
21
+ export { translateApiRuleToPostgresRule, translateApiRuleToPostgresRuleRaw, } from './translate/rules';
22
22
  export { translateApiExecutionToPostgresExecution, translatePostgresExecutionToApiExecution, } from './translate/executions';
23
23
  export { translateApiGranuleToPostgresGranule, translatePostgresGranuleToApiGranule, } from './translate/granules';
24
24
  export { translateApiPdrToPostgresPdr } from './translate/pdrs';
package/dist/index.js CHANGED
@@ -1,7 +1,11 @@
1
1
  "use strict";
2
2
  var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
3
  if (k2 === undefined) k2 = k;
4
- Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
5
9
  }) : (function(o, m, k, k2) {
6
10
  if (k2 === undefined) k2 = k;
7
11
  o[k2] = m[k];
@@ -19,8 +23,8 @@ var __importStar = (this && this.__importStar) || function (mod) {
19
23
  return result;
20
24
  };
21
25
  Object.defineProperty(exports, "__esModule", { value: true });
22
- exports.ProviderPgModel = exports.PdrPgModel = exports.GranulesExecutionsPgModel = exports.GranulePgModel = exports.FilePgModel = exports.ExecutionPgModel = exports.CollectionPgModel = exports.BasePgModel = exports.AsyncOperationPgModel = exports.upsertGranuleWithExecutionJoinRecord = exports.getApiGranuleExecutionCumulusIds = exports.getApiGranuleCumulusIds = exports.getExecutionArnsByGranuleCumulusId = exports.getApiGranuleExecutionCumulusIdsByExecution = exports.getApiExecutionCumulusIds = exports.getWorkflowNameIntersectFromGranuleIds = exports.newestExecutionArnFromGranuleIdWorkflowName = exports.executionArnsFromGranuleIdsAndWorkflowNames = exports.translateApiPdrToPostgresPdr = exports.translatePostgresGranuleToApiGranule = exports.translateApiGranuleToPostgresGranule = exports.translatePostgresExecutionToApiExecution = exports.translateApiExecutionToPostgresExecution = exports.translateApiRuleToPostgresRule = exports.translateApiProviderToPostgresProvider = exports.translateApiCollectionToPostgresCollection = exports.translatePostgresFileToApiFile = exports.translateApiFiletoPostgresFile = exports.translateApiAsyncOperationToPostgresAsyncOperation = exports.nullifyUndefinedProviderValues = exports.validateProviderHost = exports.migrationDir = exports.TableNames = exports.createRejectableTransaction = exports.localStackConnectionEnv = exports.getKnexConfig = exports.getKnexClient = exports.generateLocalTestDb = exports.fakeRuleRecordFactory = exports.fakeProviderRecordFactory = exports.fakePdrRecordFactory = exports.fakeGranuleRecordFactory = exports.fakeFileRecordFactory = exports.fakeExecutionRecordFactory = exports.fakeCollectionRecordFactory = exports.fakeAsyncOperationRecordFactory = exports.destroyLocalTestDb = exports.deleteTestDatabase = exports.createTestDatabase = exports.Knex = void 0;
23
- exports.RulePgModel = void 0;
26
+ exports.PdrPgModel = exports.GranulesExecutionsPgModel = exports.GranulePgModel = exports.FilePgModel = exports.ExecutionPgModel = exports.CollectionPgModel = exports.BasePgModel = exports.AsyncOperationPgModel = exports.upsertGranuleWithExecutionJoinRecord = exports.getApiGranuleExecutionCumulusIds = exports.getApiGranuleCumulusIds = exports.getExecutionArnsByGranuleCumulusId = exports.getApiGranuleExecutionCumulusIdsByExecution = exports.getApiExecutionCumulusIds = exports.getWorkflowNameIntersectFromGranuleIds = exports.newestExecutionArnFromGranuleIdWorkflowName = exports.executionArnsFromGranuleIdsAndWorkflowNames = exports.translateApiPdrToPostgresPdr = exports.translatePostgresGranuleToApiGranule = exports.translateApiGranuleToPostgresGranule = exports.translatePostgresExecutionToApiExecution = exports.translateApiExecutionToPostgresExecution = exports.translateApiRuleToPostgresRuleRaw = exports.translateApiRuleToPostgresRule = exports.translateApiProviderToPostgresProvider = exports.translateApiCollectionToPostgresCollection = exports.translatePostgresFileToApiFile = exports.translateApiFiletoPostgresFile = exports.translateApiAsyncOperationToPostgresAsyncOperation = exports.nullifyUndefinedProviderValues = exports.validateProviderHost = exports.migrationDir = exports.TableNames = exports.createRejectableTransaction = exports.localStackConnectionEnv = exports.getKnexConfig = exports.getKnexClient = exports.generateLocalTestDb = exports.fakeRuleRecordFactory = exports.fakeProviderRecordFactory = exports.fakePdrRecordFactory = exports.fakeGranuleRecordFactory = exports.fakeFileRecordFactory = exports.fakeExecutionRecordFactory = exports.fakeCollectionRecordFactory = exports.fakeAsyncOperationRecordFactory = exports.destroyLocalTestDb = exports.deleteTestDatabase = exports.createTestDatabase = exports.Knex = void 0;
27
+ exports.RulePgModel = exports.ProviderPgModel = void 0;
24
28
  const path = __importStar(require("path"));
25
29
  var knex_1 = require("knex");
26
30
  Object.defineProperty(exports, "Knex", { enumerable: true, get: function () { return knex_1.Knex; } });
@@ -61,6 +65,7 @@ var providers_1 = require("./translate/providers");
61
65
  Object.defineProperty(exports, "translateApiProviderToPostgresProvider", { enumerable: true, get: function () { return providers_1.translateApiProviderToPostgresProvider; } });
62
66
  var rules_1 = require("./translate/rules");
63
67
  Object.defineProperty(exports, "translateApiRuleToPostgresRule", { enumerable: true, get: function () { return rules_1.translateApiRuleToPostgresRule; } });
68
+ Object.defineProperty(exports, "translateApiRuleToPostgresRuleRaw", { enumerable: true, get: function () { return rules_1.translateApiRuleToPostgresRuleRaw; } });
64
69
  var executions_1 = require("./translate/executions");
65
70
  Object.defineProperty(exports, "translateApiExecutionToPostgresExecution", { enumerable: true, get: function () { return executions_1.translateApiExecutionToPostgresExecution; } });
66
71
  Object.defineProperty(exports, "translatePostgresExecutionToApiExecution", { enumerable: true, get: function () { return executions_1.translatePostgresExecutionToApiExecution; } });
@@ -59,9 +59,11 @@ declare class BasePgModel<ItemType, RecordType extends {
59
59
  *
60
60
  * @param {Knex | Knex.Transaction} knexOrTransaction - DB client or transaction
61
61
  * @param {ItemType} item - A record to insert into the DB
62
+ * @param {string | Array<string>} returningFields - A string or array of strings
63
+ * of columns to return. Defaults to 'cumulus_id'.
62
64
  * @returns {Promise<number[]>} List of IDs of the inserted records
63
65
  */
64
- create(knexOrTransaction: Knex | Knex.Transaction, item: ItemType): Promise<number[]>;
66
+ create(knexOrTransaction: Knex | Knex.Transaction, item: ItemType, returningFields?: string | string[]): Promise<number[]>;
65
67
  /**
66
68
  * Deletes the item from Postgres
67
69
  *
@@ -106,12 +106,14 @@ class BasePgModel {
106
106
  *
107
107
  * @param {Knex | Knex.Transaction} knexOrTransaction - DB client or transaction
108
108
  * @param {ItemType} item - A record to insert into the DB
109
+ * @param {string | Array<string>} returningFields - A string or array of strings
110
+ * of columns to return. Defaults to 'cumulus_id'.
109
111
  * @returns {Promise<number[]>} List of IDs of the inserted records
110
112
  */
111
- async create(knexOrTransaction, item) {
113
+ async create(knexOrTransaction, item, returningFields = 'cumulus_id') {
112
114
  return await knexOrTransaction(this.tableName)
113
115
  .insert(item)
114
- .returning('cumulus_id');
116
+ .returning(returningFields);
115
117
  }
116
118
  /**
117
119
  * Deletes the item from Postgres
@@ -12,5 +12,15 @@ import { PostgresRule } from '../types/rule';
12
12
  * @param {Object} providerPgModel - Instance of the provider database model
13
13
  * @returns {Object} A rule record
14
14
  */
15
+ export declare const translateApiRuleToPostgresRuleRaw: (record: RuleRecord, dbClient: Knex, collectionPgModel?: CollectionPgModel, providerPgModel?: ProviderPgModel) => Promise<PostgresRule>;
16
+ /**
17
+ * Generate a Postgres rule record from a DynamoDB record and remove nil properties.
18
+ *
19
+ * @param {Object} record - A rule
20
+ * @param {Object} dbClient - Knex client for reading from RDS database
21
+ * @param {Object} collectionPgModel - Instance of the collection database model
22
+ * @param {Object} providerPgModel - Instance of the provider database model
23
+ * @returns {Object} A rule record
24
+ */
15
25
  export declare const translateApiRuleToPostgresRule: (record: RuleRecord, dbClient: Knex, collectionPgModel?: CollectionPgModel, providerPgModel?: ProviderPgModel) => Promise<PostgresRule>;
16
26
  //# sourceMappingURL=rules.d.ts.map
@@ -1,6 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.translateApiRuleToPostgresRule = void 0;
3
+ exports.translateApiRuleToPostgresRule = exports.translateApiRuleToPostgresRuleRaw = void 0;
4
+ const util_1 = require("@cumulus/common/util");
4
5
  const collection_1 = require("../models/collection");
5
6
  const provider_1 = require("../models/provider");
6
7
  /**
@@ -12,26 +13,37 @@ const provider_1 = require("../models/provider");
12
13
  * @param {Object} providerPgModel - Instance of the provider database model
13
14
  * @returns {Object} A rule record
14
15
  */
16
+ const translateApiRuleToPostgresRuleRaw = async (record, dbClient, collectionPgModel = new collection_1.CollectionPgModel(), providerPgModel = new provider_1.ProviderPgModel()) => ({
17
+ name: record.name,
18
+ workflow: record.workflow,
19
+ provider_cumulus_id: record.provider ? await providerPgModel.getRecordCumulusId(dbClient, { name: record.provider }) : undefined,
20
+ collection_cumulus_id: record.collection ? await collectionPgModel.getRecordCumulusId(dbClient, { name: record.collection.name, version: record.collection.version }) : undefined,
21
+ meta: record.meta,
22
+ payload: record.payload,
23
+ queue_url: record.queueUrl,
24
+ arn: record.rule.arn,
25
+ type: record.rule.type,
26
+ value: record.rule.value,
27
+ log_event_arn: record.rule.logEventArn,
28
+ enabled: (record.state === undefined) || (record.state === 'ENABLED'),
29
+ tags: (record.tags ? JSON.stringify(record.tags) : undefined),
30
+ execution_name_prefix: record.executionNamePrefix,
31
+ created_at: (record.createdAt ? new Date(record.createdAt) : undefined),
32
+ updated_at: (record.updatedAt ? new Date(record.updatedAt) : undefined),
33
+ });
34
+ exports.translateApiRuleToPostgresRuleRaw = translateApiRuleToPostgresRuleRaw;
35
+ /**
36
+ * Generate a Postgres rule record from a DynamoDB record and remove nil properties.
37
+ *
38
+ * @param {Object} record - A rule
39
+ * @param {Object} dbClient - Knex client for reading from RDS database
40
+ * @param {Object} collectionPgModel - Instance of the collection database model
41
+ * @param {Object} providerPgModel - Instance of the provider database model
42
+ * @returns {Object} A rule record
43
+ */
15
44
  const translateApiRuleToPostgresRule = async (record, dbClient, collectionPgModel = new collection_1.CollectionPgModel(), providerPgModel = new provider_1.ProviderPgModel()) => {
16
- const ruleRecord = {
17
- name: record.name,
18
- workflow: record.workflow,
19
- provider_cumulus_id: record.provider ? await providerPgModel.getRecordCumulusId(dbClient, { name: record.provider }) : undefined,
20
- collection_cumulus_id: record.collection ? await collectionPgModel.getRecordCumulusId(dbClient, { name: record.collection.name, version: record.collection.version }) : undefined,
21
- meta: record.meta,
22
- payload: record.payload,
23
- queue_url: record.queueUrl,
24
- arn: record.rule.arn,
25
- type: record.rule.type,
26
- value: record.rule.value,
27
- log_event_arn: record.rule.logEventArn,
28
- enabled: (record.state === undefined) || (record.state === 'ENABLED'),
29
- tags: (record.tags ? JSON.stringify(record.tags) : undefined),
30
- execution_name_prefix: record.executionNamePrefix,
31
- created_at: (record.createdAt ? new Date(record.createdAt) : undefined),
32
- updated_at: (record.updatedAt ? new Date(record.updatedAt) : undefined),
33
- };
34
- return ruleRecord;
45
+ const ruleRecord = await (0, exports.translateApiRuleToPostgresRuleRaw)(record, dbClient, collectionPgModel, providerPgModel);
46
+ return (0, util_1.removeNilProperties)(ruleRecord);
35
47
  };
36
48
  exports.translateApiRuleToPostgresRule = translateApiRuleToPostgresRule;
37
49
  //# sourceMappingURL=rules.js.map
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@cumulus/db",
3
- "version": "10.1.0",
3
+ "version": "10.1.2",
4
4
  "description": "Utilities for working with the Cumulus DB",
5
5
  "license": "Apache-2.0",
6
6
  "main": "./dist/index.js",
@@ -29,16 +29,16 @@
29
29
  "node": ">=12.18.0"
30
30
  },
31
31
  "dependencies": {
32
- "@cumulus/aws-client": "10.1.0",
33
- "@cumulus/common": "10.1.0",
34
- "@cumulus/errors": "10.1.0",
35
- "@cumulus/logger": "10.1.0",
36
- "@cumulus/message": "10.1.0",
37
- "@cumulus/types": "10.1.0",
32
+ "@cumulus/aws-client": "10.1.2",
33
+ "@cumulus/common": "10.1.2",
34
+ "@cumulus/errors": "10.1.2",
35
+ "@cumulus/logger": "10.1.2",
36
+ "@cumulus/message": "10.1.2",
37
+ "@cumulus/types": "10.1.2",
38
38
  "crypto-random-string": "^3.2.0",
39
39
  "is-valid-hostname": "0.0.1",
40
40
  "knex": "0.95.15",
41
- "lodash": "^4.17.20",
41
+ "lodash": "^4.17.21",
42
42
  "pg": "^8.3.0",
43
43
  "snake-camel": "^1.0.6",
44
44
  "uuid": "8.3.2"
@@ -46,5 +46,5 @@
46
46
  "devDependencies": {
47
47
  "@types/uuid": "^8.0.0"
48
48
  },
49
- "gitHead": "765ba4733ec97540e28cd64dac702eea3b96c654"
49
+ "gitHead": "3b59753fa85064549b70ad8ed4a4ee213c5af313"
50
50
  }