airbyte-faros-destination 0.4.24 → 0.4.26
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/lib/common/graphql-client.d.ts +71 -3
- package/lib/common/graphql-client.js +311 -11
- package/lib/common/graphql-client.js.map +1 -1
- package/lib/converters/semaphoreci/models.d.ts +1 -1
- package/lib/converters/semaphoreci/pipelines.d.ts +1 -3
- package/lib/converters/semaphoreci/pipelines.js +3 -9
- package/lib/converters/semaphoreci/pipelines.js.map +1 -1
- package/lib/destination.js +3 -3
- package/lib/destination.js.map +1 -1
- package/lib/tsconfig.tsbuildinfo +1 -1
- package/package.json +4 -4
- package/resources/spec.json +13 -1
|
@@ -6,26 +6,87 @@ export interface GraphQLBackend {
|
|
|
6
6
|
healthCheck(): Promise<void>;
|
|
7
7
|
postQuery(query: any): Promise<any>;
|
|
8
8
|
}
|
|
9
|
+
export interface Upsert {
|
|
10
|
+
id?: string;
|
|
11
|
+
readonly model: string;
|
|
12
|
+
readonly object: Dictionary<any>;
|
|
13
|
+
readonly foreignKeys: Dictionary<Upsert>;
|
|
14
|
+
}
|
|
15
|
+
export declare class UpsertBuffer {
|
|
16
|
+
private readonly upsertBuffer;
|
|
17
|
+
add(upsert: Upsert): void;
|
|
18
|
+
size(): number;
|
|
19
|
+
pop(model: string): Upsert[] | undefined;
|
|
20
|
+
get(model: string): Upsert[] | undefined;
|
|
21
|
+
private getInternal;
|
|
22
|
+
clear(): number;
|
|
23
|
+
}
|
|
24
|
+
export declare function serialize(obj: Dictionary<number | string>): string;
|
|
25
|
+
/**
|
|
26
|
+
* Like lodash pick but with null value replacement.
|
|
27
|
+
*/
|
|
28
|
+
export declare function strictPick(obj: any, keys: string[], nullValue?: string): any;
|
|
29
|
+
/**
|
|
30
|
+
* Groups objects by primary key and then merges all related objects into
|
|
31
|
+
* a single object where last-wins for overlapping properties.
|
|
32
|
+
*/
|
|
33
|
+
export declare function mergeByPrimaryKey(objects: any[], primaryKeys: string[]): any[];
|
|
34
|
+
/**
|
|
35
|
+
* Execute async callback for each batch of upserts.
|
|
36
|
+
*/
|
|
37
|
+
export declare function batchIterator<T>(batches: Upsert[][], callback: (batch: Upsert[]) => Promise<T>): AsyncIterable<T>;
|
|
38
|
+
/**
|
|
39
|
+
* Separates upserts into levels. Level 0 has no dependencies on other levels.
|
|
40
|
+
* Level 1 depends on Level 0, 2 on 1 and so on.
|
|
41
|
+
*/
|
|
42
|
+
export declare function toLevels(upserts: Upsert[]): Upsert[][];
|
|
43
|
+
/**
|
|
44
|
+
* Client for writing records as GraphQL mutations. The client supports 3
|
|
45
|
+
* kinds of writes: Upserts, Updates and Deletes.
|
|
46
|
+
*
|
|
47
|
+
* For upserts, the high-level algorithm is:
|
|
48
|
+
*
|
|
49
|
+
* > For each record, build a tree of Upserts. The tree has more than one node if the current record represents a
|
|
50
|
+
* nested entity (e.g. branch record referencing repo which, in-turn, references org).
|
|
51
|
+
* > Buffer Upserts and index each by model (e.g. vcs_Branch)
|
|
52
|
+
* > When batch size limit is reached, execute a single insert mutation per model. Start with leaves of Upsert tree.
|
|
53
|
+
* > After inserting a batch, copy the id of each record back to the Upsert object. When inserting subsequent batches,
|
|
54
|
+
* required foreign keys will be read from the Upsert tree and copied to the appropriate batch mutation.
|
|
55
|
+
*
|
|
56
|
+
* Note: there is a complication in this algorithm for self-referent models (i.e. org_Employee's manager relationship).
|
|
57
|
+
* For these models, we split the batch into "levels". The first level consists of records with no dependencies on
|
|
58
|
+
* records of the same type. The second depends on the first and so on.
|
|
59
|
+
*
|
|
60
|
+
* For Updates and Deletes (which are much less frequent) we have a separate write buffer. This buffer is
|
|
61
|
+
* flushed if it reaches capacity. There is no attempt to combine these into bulk mutations (as done w/ upserts).
|
|
62
|
+
*/
|
|
9
63
|
export declare class GraphQLClient {
|
|
10
64
|
private readonly logger;
|
|
11
65
|
private readonly schemaLoader;
|
|
12
66
|
private readonly backend;
|
|
13
67
|
private schema;
|
|
14
68
|
private tableNames;
|
|
15
|
-
private
|
|
69
|
+
private tableDependencies;
|
|
70
|
+
private readonly mutationBatchSize;
|
|
71
|
+
private readonly upsertBatchSize;
|
|
16
72
|
private readonly writeBuffer;
|
|
17
|
-
|
|
18
|
-
|
|
73
|
+
private readonly upsertBuffer;
|
|
74
|
+
private readonly selfReferentModels;
|
|
75
|
+
constructor(logger: AirbyteLogger, schemaLoader: SchemaLoader, backend: GraphQLBackend, upsertBatchSize?: number, mutationBatchSize?: number);
|
|
19
76
|
healthCheck(): Promise<void>;
|
|
20
77
|
loadSchema(): Promise<void>;
|
|
21
78
|
private checkSchema;
|
|
22
79
|
resetData(origin: string, models: ReadonlyArray<string>): Promise<void>;
|
|
23
80
|
writeRecord(model: string, record: Dictionary<any>, origin: string): Promise<void>;
|
|
81
|
+
private flushUpsertBuffer;
|
|
82
|
+
private execUpsert;
|
|
83
|
+
private doFlushUpsertBuffer;
|
|
24
84
|
writeTimestampedRecord(record: TimestampedRecord): Promise<void>;
|
|
25
85
|
private writeUpdateRecord;
|
|
26
86
|
private writeDeletionRecord;
|
|
27
87
|
private postQuery;
|
|
28
88
|
flush(): Promise<void>;
|
|
89
|
+
private flushWriteBuffer;
|
|
29
90
|
/**
|
|
30
91
|
* Constructs a gql query from an array of json mutations.
|
|
31
92
|
* The outputted qql mutation might look like:
|
|
@@ -51,6 +112,13 @@ export declare class GraphQLClient {
|
|
|
51
112
|
static batchMutation(queries: any[]): string | undefined;
|
|
52
113
|
private createWhereClause;
|
|
53
114
|
private createMutationObject;
|
|
115
|
+
private addUpsert;
|
|
116
|
+
private objectWithForeignKeys;
|
|
117
|
+
/**
|
|
118
|
+
* returns serialized version of keys fields
|
|
119
|
+
*/
|
|
120
|
+
private serializedPrimaryKey;
|
|
121
|
+
private toUpsertOp;
|
|
54
122
|
private formatFieldValue;
|
|
55
123
|
private createConflictClause;
|
|
56
124
|
}
|
|
@@ -3,23 +3,156 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
3
3
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
4
|
};
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
exports.GraphQLClient = void 0;
|
|
6
|
+
exports.GraphQLClient = exports.toLevels = exports.batchIterator = exports.mergeByPrimaryKey = exports.strictPick = exports.serialize = exports.UpsertBuffer = void 0;
|
|
7
7
|
const date_format_1 = __importDefault(require("date-format"));
|
|
8
8
|
const json_to_graphql_query_1 = require("json-to-graphql-query");
|
|
9
9
|
const lodash_1 = require("lodash");
|
|
10
10
|
const traverse_1 = __importDefault(require("traverse"));
|
|
11
|
+
const ts_essentials_1 = require("ts-essentials");
|
|
11
12
|
const verror_1 = require("verror");
|
|
12
13
|
const types_1 = require("./types");
|
|
14
|
+
class UpsertBuffer {
|
|
15
|
+
constructor() {
|
|
16
|
+
this.upsertBuffer = new Map();
|
|
17
|
+
}
|
|
18
|
+
add(upsert) {
|
|
19
|
+
const modelBuffer = this.upsertBuffer.get(upsert.model);
|
|
20
|
+
if (!modelBuffer) {
|
|
21
|
+
this.upsertBuffer.set(upsert.model, [upsert]);
|
|
22
|
+
return;
|
|
23
|
+
}
|
|
24
|
+
modelBuffer.push(upsert);
|
|
25
|
+
}
|
|
26
|
+
size() {
|
|
27
|
+
// the limiting factor is size of a single request
|
|
28
|
+
return Array.from(this.upsertBuffer.values()).reduce((acc, arr) => (0, lodash_1.max)([acc, arr.length]), 0);
|
|
29
|
+
}
|
|
30
|
+
pop(model) {
|
|
31
|
+
return this.getInternal(model, true);
|
|
32
|
+
}
|
|
33
|
+
get(model) {
|
|
34
|
+
return this.getInternal(model, false);
|
|
35
|
+
}
|
|
36
|
+
getInternal(model, remove) {
|
|
37
|
+
if (this.upsertBuffer.has(model)) {
|
|
38
|
+
const modelUpserts = this.upsertBuffer.get(model);
|
|
39
|
+
if (remove) {
|
|
40
|
+
this.upsertBuffer.delete(model);
|
|
41
|
+
}
|
|
42
|
+
return modelUpserts;
|
|
43
|
+
}
|
|
44
|
+
return undefined;
|
|
45
|
+
}
|
|
46
|
+
clear() {
|
|
47
|
+
const size = this.size();
|
|
48
|
+
this.upsertBuffer.clear();
|
|
49
|
+
return size;
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
exports.UpsertBuffer = UpsertBuffer;
|
|
53
|
+
function serialize(obj) {
|
|
54
|
+
return (0, lodash_1.keys)(obj)
|
|
55
|
+
.sort()
|
|
56
|
+
.map((k) => `${k}:${obj[k]}`)
|
|
57
|
+
.join('|');
|
|
58
|
+
}
|
|
59
|
+
exports.serialize = serialize;
|
|
60
|
+
/**
|
|
61
|
+
* Like lodash pick but with null value replacement.
|
|
62
|
+
*/
|
|
63
|
+
function strictPick(obj, keys, nullValue = 'null') {
|
|
64
|
+
return keys.reduce((result, key) => (0, lodash_1.set)(result, key, obj[key] || nullValue), {});
|
|
65
|
+
}
|
|
66
|
+
exports.strictPick = strictPick;
|
|
67
|
+
/**
|
|
68
|
+
* Groups objects by primary key and then merges all related objects into
|
|
69
|
+
* a single object where last-wins for overlapping properties.
|
|
70
|
+
*/
|
|
71
|
+
function mergeByPrimaryKey(objects, primaryKeys) {
|
|
72
|
+
const byPK = (0, lodash_1.groupBy)(objects, (o) => serialize((0, lodash_1.pick)(o, primaryKeys)));
|
|
73
|
+
return Object.values(byPK).map((arr) => arr.reduce((acc, obj) => ({ ...acc, ...obj }), {}));
|
|
74
|
+
}
|
|
75
|
+
exports.mergeByPrimaryKey = mergeByPrimaryKey;
|
|
76
|
+
/**
|
|
77
|
+
* Execute async callback for each batch of upserts.
|
|
78
|
+
*/
|
|
79
|
+
function batchIterator(batches, callback) {
|
|
80
|
+
return {
|
|
81
|
+
async *[Symbol.asyncIterator]() {
|
|
82
|
+
for (const batch of batches) {
|
|
83
|
+
yield await callback(batch);
|
|
84
|
+
}
|
|
85
|
+
},
|
|
86
|
+
};
|
|
87
|
+
}
|
|
88
|
+
exports.batchIterator = batchIterator;
|
|
89
|
+
/**
|
|
90
|
+
* Separates upserts into levels. Level 0 has no dependencies on other levels.
|
|
91
|
+
* Level 1 depends on Level 0, 2 on 1 and so on.
|
|
92
|
+
*/
|
|
93
|
+
function toLevels(upserts) {
|
|
94
|
+
const withLevel = (0, lodash_1.flatMap)(upserts, (u) => addLevel(u));
|
|
95
|
+
const byLevel = (0, lodash_1.groupBy)(withLevel, (tuple) => tuple[1]);
|
|
96
|
+
const result = [];
|
|
97
|
+
Object.keys(byLevel)
|
|
98
|
+
.sort()
|
|
99
|
+
.forEach((level) => {
|
|
100
|
+
result.push((0, lodash_1.unzip)(byLevel[level])[0]);
|
|
101
|
+
});
|
|
102
|
+
return result;
|
|
103
|
+
}
|
|
104
|
+
exports.toLevels = toLevels;
|
|
105
|
+
/**
|
|
106
|
+
* Converts an Upsert (which is a tree structure) into an array of tuples.
|
|
107
|
+
* Each tuple contains an Upsert and its level in the tree structure.
|
|
108
|
+
* The level indicates the number of steps from a leaf where leaves are level 0.
|
|
109
|
+
* If an Upsert has multiple paths to a leaf, the level is the maximum number of
|
|
110
|
+
* steps.
|
|
111
|
+
*/
|
|
112
|
+
function addLevel(u) {
|
|
113
|
+
const result = [];
|
|
114
|
+
let maxAncestorLevel = 0;
|
|
115
|
+
for (const ancestor of Object.values(u.foreignKeys)) {
|
|
116
|
+
if (ancestor.model === u.model) {
|
|
117
|
+
const ancestorsWithLevels = addLevel(ancestor);
|
|
118
|
+
maxAncestorLevel = (0, lodash_1.max)([ancestorsWithLevels[0][1], maxAncestorLevel]);
|
|
119
|
+
result.push(...ancestorsWithLevels);
|
|
120
|
+
}
|
|
121
|
+
}
|
|
122
|
+
const thisLevel = result.length ? maxAncestorLevel + 1 : 0;
|
|
123
|
+
result.unshift([u, thisLevel]);
|
|
124
|
+
return result;
|
|
125
|
+
}
|
|
126
|
+
/**
|
|
127
|
+
* Client for writing records as GraphQL mutations. The client supports 3
|
|
128
|
+
* kinds of writes: Upserts, Updates and Deletes.
|
|
129
|
+
*
|
|
130
|
+
* For upserts, the high-level algorithm is:
|
|
131
|
+
*
|
|
132
|
+
* > For each record, build a tree of Upserts. The tree has more than one node if the current record represents a
|
|
133
|
+
* nested entity (e.g. branch record referencing repo which, in-turn, references org).
|
|
134
|
+
* > Buffer Upserts and index each by model (e.g. vcs_Branch)
|
|
135
|
+
* > When batch size limit is reached, execute a single insert mutation per model. Start with leaves of Upsert tree.
|
|
136
|
+
* > After inserting a batch, copy the id of each record back to the Upsert object. When inserting subsequent batches,
|
|
137
|
+
* required foreign keys will be read from the Upsert tree and copied to the appropriate batch mutation.
|
|
138
|
+
*
|
|
139
|
+
* Note: there is a complication in this algorithm for self-referent models (i.e. org_Employee's manager relationship).
|
|
140
|
+
* For these models, we split the batch into "levels". The first level consists of records with no dependencies on
|
|
141
|
+
* records of the same type. The second depends on the first and so on.
|
|
142
|
+
*
|
|
143
|
+
* For Updates and Deletes (which are much less frequent) we have a separate write buffer. This buffer is
|
|
144
|
+
* flushed if it reaches capacity. There is no attempt to combine these into bulk mutations (as done w/ upserts).
|
|
145
|
+
*/
|
|
13
146
|
class GraphQLClient {
|
|
14
|
-
constructor(logger, schemaLoader, backend,
|
|
147
|
+
constructor(logger, schemaLoader, backend, upsertBatchSize = 1000, mutationBatchSize = 1) {
|
|
15
148
|
this.writeBuffer = [];
|
|
149
|
+
this.upsertBuffer = new UpsertBuffer();
|
|
150
|
+
this.selfReferentModels = new Set();
|
|
16
151
|
this.logger = logger;
|
|
17
152
|
this.schemaLoader = schemaLoader;
|
|
18
153
|
this.backend = backend;
|
|
19
|
-
this.
|
|
20
|
-
|
|
21
|
-
getBatchSize() {
|
|
22
|
-
return this.batchSize;
|
|
154
|
+
this.upsertBatchSize = upsertBatchSize;
|
|
155
|
+
this.mutationBatchSize = mutationBatchSize;
|
|
23
156
|
}
|
|
24
157
|
async healthCheck() {
|
|
25
158
|
try {
|
|
@@ -31,7 +164,18 @@ class GraphQLClient {
|
|
|
31
164
|
}
|
|
32
165
|
async loadSchema() {
|
|
33
166
|
this.schema = await this.schemaLoader.loadSchema();
|
|
167
|
+
// various derivative values of schema
|
|
34
168
|
this.tableNames = new Set(this.schema.tableNames);
|
|
169
|
+
this.tableDependencies = [...this.schema.sortedModelDependencies];
|
|
170
|
+
(0, lodash_1.reverse)(this.tableDependencies);
|
|
171
|
+
// self-referent models
|
|
172
|
+
for (const [model, modelRefs] of Object.entries(this.schema.references)) {
|
|
173
|
+
for (const reference of Object.values(modelRefs)) {
|
|
174
|
+
if (reference.model === model) {
|
|
175
|
+
this.selfReferentModels.add(model);
|
|
176
|
+
}
|
|
177
|
+
}
|
|
178
|
+
}
|
|
35
179
|
}
|
|
36
180
|
checkSchema() {
|
|
37
181
|
if (!this.schema) {
|
|
@@ -70,11 +214,69 @@ class GraphQLClient {
|
|
|
70
214
|
if (!this.tableNames.has(model)) {
|
|
71
215
|
throw new verror_1.VError(`Table ${model} does not exist`);
|
|
72
216
|
}
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
217
|
+
this.addUpsert(model, origin, record);
|
|
218
|
+
if (this.upsertBuffer.size() >= this.upsertBatchSize) {
|
|
219
|
+
await this.flushUpsertBuffer();
|
|
220
|
+
}
|
|
221
|
+
}
|
|
222
|
+
async flushUpsertBuffer() {
|
|
223
|
+
try {
|
|
224
|
+
await this.doFlushUpsertBuffer();
|
|
225
|
+
}
|
|
226
|
+
catch (e) {
|
|
227
|
+
const numRemoved = this.upsertBuffer.clear();
|
|
228
|
+
throw new verror_1.VError(e, 'failed to flush upsert buffer. abandoned %d records', numRemoved);
|
|
229
|
+
}
|
|
230
|
+
}
|
|
231
|
+
async execUpsert(model, op) {
|
|
232
|
+
// write batch
|
|
233
|
+
const opGql = (0, json_to_graphql_query_1.jsonToGraphQLQuery)(op.query);
|
|
234
|
+
const start = Date.now();
|
|
235
|
+
const opRes = await this.backend.postQuery(opGql);
|
|
236
|
+
const end = Date.now();
|
|
237
|
+
// extract ids of newly written records and set on upserts.
|
|
238
|
+
// the ids are used as foreign keys by subsequent batches
|
|
239
|
+
// step 1: access array of results
|
|
240
|
+
// will be at path 'opRes.data.insert_<model>.returning'
|
|
241
|
+
const paths = (0, lodash_1.keys)(opRes.data);
|
|
242
|
+
(0, ts_essentials_1.assert)(paths.length === 1, `expected one element in ${paths}`);
|
|
243
|
+
const objects = (0, lodash_1.get)(opRes.data, `${paths[0]}.returning`);
|
|
244
|
+
(0, ts_essentials_1.assert)(Array.isArray(objects), `expected array`);
|
|
245
|
+
for (const obj of objects) {
|
|
246
|
+
// step 2: assign id to all upserts related to this object
|
|
247
|
+
// construct key from returned result and lookup upsert by key
|
|
248
|
+
const key = this.serializedPrimaryKey(model, obj);
|
|
249
|
+
const upserts = op.upsertsByKey.get(key);
|
|
250
|
+
(0, ts_essentials_1.assert)(upserts, `failed to resolve upserts for ${model} and ${key}`);
|
|
251
|
+
(0, ts_essentials_1.assert)(obj.id, `failed to resolve id for ${model} and ${JSON.stringify(obj)}`);
|
|
252
|
+
upserts.forEach((u) => (u.id = obj.id));
|
|
253
|
+
}
|
|
254
|
+
return {
|
|
255
|
+
model,
|
|
256
|
+
numObjects: objects.length,
|
|
257
|
+
durationMs: end - start,
|
|
76
258
|
};
|
|
77
|
-
|
|
259
|
+
}
|
|
260
|
+
async doFlushUpsertBuffer() {
|
|
261
|
+
for (const model of this.tableDependencies) {
|
|
262
|
+
const modelUpserts = this.upsertBuffer.pop(model);
|
|
263
|
+
if (modelUpserts) {
|
|
264
|
+
const withLevels = this.selfReferentModels.has(model)
|
|
265
|
+
? toLevels(modelUpserts)
|
|
266
|
+
: [modelUpserts];
|
|
267
|
+
const iterator = batchIterator(withLevels, (batch) => {
|
|
268
|
+
return this.execUpsert(model, this.toUpsertOp(model, batch));
|
|
269
|
+
});
|
|
270
|
+
try {
|
|
271
|
+
for await (const result of iterator) {
|
|
272
|
+
this.logger.debug(`executed ${model} upsert with ${result.numObjects} object(s) in ${result.durationMs}ms`);
|
|
273
|
+
}
|
|
274
|
+
}
|
|
275
|
+
catch (e) {
|
|
276
|
+
throw new verror_1.VError(e, `failed to write upserts for ${model}`);
|
|
277
|
+
}
|
|
278
|
+
}
|
|
279
|
+
}
|
|
78
280
|
}
|
|
79
281
|
async writeTimestampedRecord(record) {
|
|
80
282
|
switch (record.operation) {
|
|
@@ -121,11 +323,19 @@ class GraphQLClient {
|
|
|
121
323
|
query,
|
|
122
324
|
errorMsg,
|
|
123
325
|
});
|
|
124
|
-
if (this.writeBuffer.length >= this.
|
|
326
|
+
if (this.writeBuffer.length >= this.mutationBatchSize) {
|
|
125
327
|
await this.flush();
|
|
126
328
|
}
|
|
127
329
|
}
|
|
128
330
|
async flush() {
|
|
331
|
+
// sequentially flush upsert then write buffer
|
|
332
|
+
// we do this sequentially because we may have updates
|
|
333
|
+
// that operate on records in the upsert buffers and
|
|
334
|
+
// therefore need the upserts written first
|
|
335
|
+
await this.flushUpsertBuffer();
|
|
336
|
+
await this.flushWriteBuffer();
|
|
337
|
+
}
|
|
338
|
+
async flushWriteBuffer() {
|
|
129
339
|
const queries = this.writeBuffer.map((op) => op.query);
|
|
130
340
|
const gql = GraphQLClient.batchMutation(queries);
|
|
131
341
|
if (gql) {
|
|
@@ -224,6 +434,96 @@ class GraphQLClient {
|
|
|
224
434
|
on_conflict: this.createConflictClause(model, nested),
|
|
225
435
|
};
|
|
226
436
|
}
|
|
437
|
+
addUpsert(model, origin, record) {
|
|
438
|
+
const object = {};
|
|
439
|
+
const foreignKeys = {};
|
|
440
|
+
for (const [field, value] of Object.entries(record)) {
|
|
441
|
+
const nestedModel = this.schema.references[model][field];
|
|
442
|
+
if (nestedModel && value) {
|
|
443
|
+
foreignKeys[field] = this.addUpsert(nestedModel.model, origin, value);
|
|
444
|
+
}
|
|
445
|
+
else {
|
|
446
|
+
const val = this.formatFieldValue(model, field, value);
|
|
447
|
+
if (!(0, lodash_1.isNil)(val))
|
|
448
|
+
object[field] = val;
|
|
449
|
+
}
|
|
450
|
+
}
|
|
451
|
+
object['origin'] = origin;
|
|
452
|
+
const upsert = {
|
|
453
|
+
model,
|
|
454
|
+
object,
|
|
455
|
+
foreignKeys: foreignKeys,
|
|
456
|
+
};
|
|
457
|
+
// index by model
|
|
458
|
+
this.upsertBuffer.add(upsert);
|
|
459
|
+
return upsert;
|
|
460
|
+
}
|
|
461
|
+
objectWithForeignKeys(upsert) {
|
|
462
|
+
if ((0, lodash_1.isEmpty)(upsert.foreignKeys)) {
|
|
463
|
+
return upsert.object;
|
|
464
|
+
}
|
|
465
|
+
// for each FK, copy id of related upsert to FK field
|
|
466
|
+
// the upsert's id was populated after the associated batch
|
|
467
|
+
// was written in doFlushUpsertBuffer
|
|
468
|
+
const result = (0, lodash_1.clone)(upsert.object);
|
|
469
|
+
for (const [relName, fkUpsert] of Object.entries(upsert.foreignKeys)) {
|
|
470
|
+
// foreign key was constructed from schema so the following is safe to access
|
|
471
|
+
const fkField = this.schema.references[upsert.model][relName].foreignKey;
|
|
472
|
+
const fkValue = fkUpsert.id;
|
|
473
|
+
(0, ts_essentials_1.assert)(!(0, lodash_1.isNil)(fkValue), `failed to resolve fk value for ${relName} from ${JSON.stringify(fkUpsert)}`);
|
|
474
|
+
result[fkField] = fkValue;
|
|
475
|
+
}
|
|
476
|
+
return result;
|
|
477
|
+
}
|
|
478
|
+
/**
|
|
479
|
+
* returns serialized version of keys fields
|
|
480
|
+
*/
|
|
481
|
+
serializedPrimaryKey(model, obj) {
|
|
482
|
+
return serialize(strictPick(obj, this.schema.primaryKeys[model]));
|
|
483
|
+
}
|
|
484
|
+
toUpsertOp(model, modelUpserts) {
|
|
485
|
+
const upsertsByKey = new Map();
|
|
486
|
+
// add FKs and index upsert by primary key
|
|
487
|
+
// the index is needed after write to find source
|
|
488
|
+
// upsert and set id
|
|
489
|
+
const all = modelUpserts.map((u) => {
|
|
490
|
+
const fullObj = this.objectWithForeignKeys(u);
|
|
491
|
+
const key = this.serializedPrimaryKey(model, fullObj);
|
|
492
|
+
const upsertsForKey = upsertsByKey.get(key);
|
|
493
|
+
if (!upsertsForKey) {
|
|
494
|
+
upsertsByKey.set(key, [u]);
|
|
495
|
+
}
|
|
496
|
+
else {
|
|
497
|
+
upsertsForKey.push(u);
|
|
498
|
+
}
|
|
499
|
+
return fullObj;
|
|
500
|
+
});
|
|
501
|
+
const primaryKeys = this.schema.primaryKeys[model];
|
|
502
|
+
// there can be multiple records that represent the
|
|
503
|
+
// same object. merge all records into one
|
|
504
|
+
const objects = mergeByPrimaryKey(all, primaryKeys);
|
|
505
|
+
const keysObj = primaryKeys
|
|
506
|
+
.sort()
|
|
507
|
+
.reduce((a, v) => ({ ...a, [v]: true }), {});
|
|
508
|
+
const mutation = {
|
|
509
|
+
mutation: {
|
|
510
|
+
[`insert_${model}`]: {
|
|
511
|
+
__args: {
|
|
512
|
+
objects,
|
|
513
|
+
on_conflict: this.createConflictClause(model, false),
|
|
514
|
+
},
|
|
515
|
+
returning: {
|
|
516
|
+
id: true,
|
|
517
|
+
...keysObj,
|
|
518
|
+
},
|
|
519
|
+
},
|
|
520
|
+
},
|
|
521
|
+
};
|
|
522
|
+
return {
|
|
523
|
+
query: mutation,
|
|
524
|
+
upsertsByKey,
|
|
525
|
+
};
|
|
526
|
+
}
|
|
227
527
|
formatFieldValue(model, field, value) {
|
|
228
528
|
if ((0, lodash_1.isNil)(value))
|
|
229
529
|
return undefined;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"graphql-client.js","sourceRoot":"","sources":["../../src/common/graphql-client.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"graphql-client.js","sourceRoot":"","sources":["../../src/common/graphql-client.ts"],"names":[],"mappings":"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"}
|
|
@@ -84,7 +84,6 @@ export interface Pipeline {
|
|
|
84
84
|
readonly partially_rerun_by: string;
|
|
85
85
|
readonly pending_at: string;
|
|
86
86
|
readonly ppl_id: string;
|
|
87
|
-
readonly project_id: string;
|
|
88
87
|
readonly promotion_of: string;
|
|
89
88
|
readonly queuing_at: string;
|
|
90
89
|
readonly repository_id: string;
|
|
@@ -101,6 +100,7 @@ export interface Pipeline {
|
|
|
101
100
|
readonly with_after_task: string;
|
|
102
101
|
readonly working_directory: string;
|
|
103
102
|
readonly yaml_file_name: string;
|
|
103
|
+
readonly project: Project;
|
|
104
104
|
readonly jobs: Job[];
|
|
105
105
|
}
|
|
106
106
|
export declare enum PipelineResult {
|
|
@@ -1,10 +1,8 @@
|
|
|
1
1
|
import { AirbyteRecord } from 'faros-airbyte-cdk';
|
|
2
|
-
import { DestinationModel, DestinationRecord, StreamContext
|
|
2
|
+
import { DestinationModel, DestinationRecord, StreamContext } from '../converter';
|
|
3
3
|
import { SemaphoreCIConverter } from './common';
|
|
4
4
|
export declare class Pipelines extends SemaphoreCIConverter {
|
|
5
5
|
readonly destinationModels: ReadonlyArray<DestinationModel>;
|
|
6
|
-
private readonly projectsStream;
|
|
7
|
-
get dependencies(): ReadonlyArray<StreamName>;
|
|
8
6
|
id(record: AirbyteRecord): any;
|
|
9
7
|
convert(record: AirbyteRecord, ctx: StreamContext): Promise<ReadonlyArray<DestinationRecord>>;
|
|
10
8
|
}
|
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.Pipelines = void 0;
|
|
4
|
-
const converter_1 = require("../converter");
|
|
5
4
|
const common_1 = require("./common");
|
|
6
5
|
class Pipelines extends common_1.SemaphoreCIConverter {
|
|
7
6
|
constructor() {
|
|
@@ -12,21 +11,16 @@ class Pipelines extends common_1.SemaphoreCIConverter {
|
|
|
12
11
|
'cicd_BuildCommitAssociation',
|
|
13
12
|
'cicd_BuildSteps',
|
|
14
13
|
];
|
|
15
|
-
this.projectsStream = new converter_1.StreamName(this.source, 'projects');
|
|
16
|
-
}
|
|
17
|
-
get dependencies() {
|
|
18
|
-
return [this.projectsStream];
|
|
19
14
|
}
|
|
20
15
|
id(record) {
|
|
21
16
|
var _a, _b;
|
|
22
17
|
return (_b = (_a = record === null || record === void 0 ? void 0 : record.record) === null || _a === void 0 ? void 0 : _a.data) === null || _b === void 0 ? void 0 : _b.ppl_id;
|
|
23
18
|
}
|
|
24
19
|
async convert(record, ctx) {
|
|
25
|
-
var _a, _b, _c, _d;
|
|
26
20
|
const pipelineRecord = record.record.data;
|
|
27
21
|
const source = this.streamName.source;
|
|
28
|
-
const project =
|
|
29
|
-
const repository =
|
|
22
|
+
const project = pipelineRecord.project;
|
|
23
|
+
const repository = project.spec.repository;
|
|
30
24
|
const VCSSource = common_1.SemaphoreCICommon.getVCSSourceFromUrl(repository.url);
|
|
31
25
|
/*
|
|
32
26
|
* Pipeline
|
|
@@ -39,7 +33,7 @@ class Pipelines extends common_1.SemaphoreCIConverter {
|
|
|
39
33
|
const pipeline = {
|
|
40
34
|
model: 'cicd_Pipeline',
|
|
41
35
|
record: {
|
|
42
|
-
uid: `${
|
|
36
|
+
uid: `${project.metadata.name}-${pipelineRecord.name}`,
|
|
43
37
|
name: pipelineRecord.name,
|
|
44
38
|
organization: organizationKey,
|
|
45
39
|
},
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pipelines.js","sourceRoot":"","sources":["../../../src/converters/semaphoreci/pipelines.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"pipelines.js","sourceRoot":"","sources":["../../../src/converters/semaphoreci/pipelines.ts"],"names":[],"mappings":"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"}
|
package/lib/destination.js
CHANGED
|
@@ -90,7 +90,7 @@ class FarosDestination extends faros_airbyte_cdk_1.AirbyteDestination {
|
|
|
90
90
|
try {
|
|
91
91
|
const backend = new hasura_backend_1.HasuraBackend(config.edition_configs.hasura_url, config.edition_configs.hasura_admin_secret, this.makeHttpAgents(config.keep_alive));
|
|
92
92
|
const schemaLoader = new faros_feeds_sdk_1.HasuraSchemaLoader(config.edition_configs.hasura_url, config.edition_configs.hasura_admin_secret);
|
|
93
|
-
this.graphQLClient = new graphql_client_1.GraphQLClient(this.logger, schemaLoader, backend, config.edition_configs.community_graphql_batch_size);
|
|
93
|
+
this.graphQLClient = new graphql_client_1.GraphQLClient(this.logger, schemaLoader, backend, config.edition_configs.community_graphql_batch_size, config.edition_configs.community_graphql_mutation_batch_size);
|
|
94
94
|
}
|
|
95
95
|
catch (e) {
|
|
96
96
|
throw new verror_1.VError(`Failed to initialize Hasura Client. Error: ${e}`);
|
|
@@ -184,7 +184,7 @@ class FarosDestination extends faros_airbyte_cdk_1.AirbyteDestination {
|
|
|
184
184
|
return await client.gqlSchema();
|
|
185
185
|
},
|
|
186
186
|
};
|
|
187
|
-
this.graphQLClient = new graphql_client_1.GraphQLClient(this.logger, schemaLoader, backend, config.edition_configs.cloud_graphql_batch_size);
|
|
187
|
+
this.graphQLClient = new graphql_client_1.GraphQLClient(this.logger, schemaLoader, backend, config.edition_configs.cloud_graphql_batch_size, config.edition_configs.cloud_graphql_mutation_batch_size);
|
|
188
188
|
}
|
|
189
189
|
catch (e) {
|
|
190
190
|
throw new verror_1.VError(`Failed to initialize GraphQLClient. Error: ${e}`);
|
|
@@ -301,7 +301,7 @@ class FarosDestination extends faros_airbyte_cdk_1.AirbyteDestination {
|
|
|
301
301
|
latestStateMessage = await this.writeEntries(streamContext, stdin, streams, converterDependencies, stats);
|
|
302
302
|
}
|
|
303
303
|
else if (this.graphQLClient) {
|
|
304
|
-
this.logger.info(`Using GraphQLClient for
|
|
304
|
+
this.logger.info(`Using GraphQLClient for writer`);
|
|
305
305
|
const graphQLClient = this.getGraphQLClient();
|
|
306
306
|
await graphQLClient.loadSchema();
|
|
307
307
|
await graphQLClient.resetData(origin, deleteModelEntries);
|