@aifabrix/builder 2.45.0 → 2.45.5
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/.cursor/rules/docs-rules.mdc +3 -1
- package/integration/hubspot-test/test-artifacts/wizard-hubspot-credential-real.yaml +1 -1
- package/integration/hubspot-test/test-artifacts/wizard-hubspot-env-vars.yaml +1 -1
- package/integration/hubspot-test/wizard-hubspot-e2e.yaml +1 -1
- package/jest.projects.js +44 -1
- package/lib/api/agent-metadata-validation.api.js +93 -0
- package/lib/api/audit-api-helpers.js +68 -0
- package/lib/api/audit.api.js +119 -0
- package/lib/api/auth-cache.api.js +44 -0
- package/lib/api/certificates.api.js +4 -4
- package/lib/api/credential.api.js +2 -2
- package/lib/api/dataplane-health.api.js +137 -0
- package/lib/api/dataplane-sync.api.js +27 -0
- package/lib/api/datasources-core.api.js +21 -18
- package/lib/api/datasources-extended.api.js +22 -22
- package/lib/api/dimensions.api.js +3 -0
- package/lib/api/external-systems.api.js +13 -13
- package/lib/api/governance-scenarios.api.js +39 -0
- package/lib/api/groups.api.js +79 -0
- package/lib/api/index.js +45 -2
- package/lib/api/pipeline.api.js +4 -4
- package/lib/api/protection.api.js +157 -0
- package/lib/api/records-bulk.api.js +30 -0
- package/lib/api/records-search-parse.js +49 -0
- package/lib/api/records-search.api.js +29 -0
- package/lib/api/types/agent-metadata-validation.types.js +67 -0
- package/lib/api/types/audit.types.js +72 -0
- package/lib/api/types/dataplane-health.types.js +27 -0
- package/lib/api/types/dimensions.types.js +2 -0
- package/lib/api/types/governance-scenarios.types.js +39 -0
- package/lib/api/types/protection.types.js +69 -0
- package/lib/api/types/records-bulk.types.js +35 -0
- package/lib/api/types/records-search.types.js +28 -0
- package/lib/api/user-groups.api.js +50 -0
- package/lib/api/users.api.js +95 -0
- package/lib/api/validation-run.api.js +3 -3
- package/lib/api/validation-runner.js +3 -3
- package/lib/api/wizard-platform.api.js +3 -3
- package/lib/api/wizard.api.js +21 -21
- package/lib/app/deploy.js +34 -19
- package/lib/cli/index.js +4 -2
- package/lib/cli/infra-guided.js +22 -3
- package/lib/cli/setup-app.help.js +50 -2
- package/lib/cli/setup-app.js +33 -24
- package/lib/cli/setup-app.test-commands.js +80 -21
- package/lib/cli/setup-auth.js +30 -3
- package/lib/cli/setup-external-system.js +37 -3
- package/lib/cli/setup-utility-help-after.js +45 -0
- package/lib/cli/setup-utility-resolve.js +2 -2
- package/lib/cli/setup-utility.js +99 -81
- package/lib/commands/auth-status-dataplane-version.js +231 -0
- package/lib/commands/auth-status-display.js +94 -0
- package/lib/commands/auth-status.js +70 -6
- package/lib/commands/credential-push.js +10 -5
- package/lib/commands/datasource-load-export-cli.js +178 -0
- package/lib/commands/datasource-test-trust-cli.js +114 -0
- package/lib/commands/datasource-unified-test-cli.js +25 -17
- package/lib/commands/datasource-unified-test-cli.options.js +18 -3
- package/lib/commands/datasource-unified-test-e2e-cli-helpers.js +5 -5
- package/lib/commands/datasource-verify-audit-cli.js +96 -0
- package/lib/commands/datasource.js +68 -1
- package/lib/commands/dimension-value.js +43 -13
- package/lib/commands/dimension.js +38 -7
- package/lib/commands/identity-apply-sync.js +131 -0
- package/lib/commands/identity-group-cli.js +146 -0
- package/lib/commands/identity-membership-role-cache.js +175 -0
- package/lib/commands/identity-shared.js +94 -0
- package/lib/commands/identity-user-cli.js +158 -0
- package/lib/commands/identity.js +43 -0
- package/lib/commands/login.js +46 -16
- package/lib/commands/protection-cli-leaves.js +286 -0
- package/lib/commands/protection.js +50 -0
- package/lib/commands/repair.js +13 -3
- package/lib/commands/test-e2e-external.js +40 -9
- package/lib/commands/test-governance-cli-options.js +47 -0
- package/lib/commands/test-governance-command-action.js +55 -0
- package/lib/commands/test-governance-external.js +88 -0
- package/lib/commands/test-trust-cli-options.js +32 -0
- package/lib/commands/test-trust-command-action.js +118 -0
- package/lib/commands/test-trust-external.js +127 -0
- package/lib/commands/upload.js +34 -13
- package/lib/commands/wizard-core.js +3 -0
- package/lib/core/config-device-dataplane.js +185 -0
- package/lib/datasource/agent-trust-debug-log.js +45 -0
- package/lib/datasource/agent-trust-fetch.js +115 -0
- package/lib/datasource/agent-trust-map.js +101 -0
- package/lib/datasource/agent-trust-mock.js +44 -0
- package/lib/datasource/agent-trust-run.js +93 -0
- package/lib/datasource/agent-trust-timeout.js +25 -0
- package/lib/datasource/audit-evidence-display.js +80 -0
- package/lib/datasource/audit-evidence-extract-debug.js +103 -0
- package/lib/datasource/audit-evidence-extract.js +177 -0
- package/lib/datasource/audit-evidence-matrix-rows.js +158 -0
- package/lib/datasource/audit-evidence-operation-aliases.js +63 -0
- package/lib/datasource/audit-evidence-poll.js +109 -0
- package/lib/datasource/audit-evidence-run.js +177 -0
- package/lib/datasource/audit-evidence-verify-helpers.js +167 -0
- package/lib/datasource/audit-evidence-verify-matrix.js +177 -0
- package/lib/datasource/audit-evidence-verify.js +108 -0
- package/lib/datasource/bulk-loader-run-batches.js +88 -0
- package/lib/datasource/bulk-loader-service-retry.js +52 -0
- package/lib/datasource/bulk-loader-service.js +127 -0
- package/lib/datasource/capability/run-capability-dimension.js +2 -1
- package/lib/datasource/datasource-exporter-resolve.js +82 -0
- package/lib/datasource/datasource-exporter-service.js +144 -0
- package/lib/datasource/datasource-identifier.js +148 -0
- package/lib/datasource/datasource-load-export-context.js +92 -0
- package/lib/datasource/integration-context.js +6 -4
- package/lib/datasource/local-data-paths.js +145 -0
- package/lib/datasource/log-cleaner.js +241 -0
- package/lib/datasource/log-viewer.js +111 -6
- package/lib/datasource/record-file-parser.js +85 -0
- package/lib/datasource/record-mapper.js +129 -0
- package/lib/datasource/resolve-app.js +74 -55
- package/lib/datasource/test-e2e.js +26 -2
- package/lib/datasource/unified-validation-run-resolve.js +45 -12
- package/lib/datasource/unified-validation-run.js +43 -17
- package/lib/datasource/validate.js +37 -20
- package/lib/external-system/test-system-level.js +25 -4
- package/lib/external-system/test.js +3 -1
- package/lib/governance/governance-pack-loader.js +70 -0
- package/lib/governance/governance-run-display.js +119 -0
- package/lib/identity/identity-apply-core.js +108 -0
- package/lib/identity/identity-apply-phases.js +244 -0
- package/lib/identity/identity-apply-service.js +77 -0
- package/lib/identity/identity-csv-parser.js +114 -0
- package/lib/internal/fs-real-sync.js +29 -1
- package/lib/protection/auth-context.js +45 -0
- package/lib/protection/convert-batch.js +90 -0
- package/lib/protection/load.js +41 -0
- package/lib/protection/paths.js +158 -0
- package/lib/protection/preflight-datasource-ready.js +46 -0
- package/lib/protection/protection-create-probe-lines.js +142 -0
- package/lib/protection/protection-create-probes.js +95 -0
- package/lib/protection/protection-create-scaffold.js +281 -0
- package/lib/protection/protection-display-helpers.js +445 -0
- package/lib/protection/protection-display.js +215 -0
- package/lib/protection/protection-preset-registry.js +97 -0
- package/lib/protection/report-exit.js +62 -0
- package/lib/protection/resolve.js +202 -0
- package/lib/protection/run-commands-validate.js +130 -0
- package/lib/protection/run-commands.js +216 -0
- package/lib/protection/run-protection-create-helpers.js +134 -0
- package/lib/protection/run-protection-create-probes-flow.js +43 -0
- package/lib/protection/run-protection-create.js +191 -0
- package/lib/protection/scope.js +22 -0
- package/lib/protection/sync-after-upload.js +64 -0
- package/lib/protection/upload-batch.js +127 -0
- package/lib/protection/validate-batch.js +113 -0
- package/lib/protection/validate-local.js +65 -0
- package/lib/resolvers/dimension-file.js +29 -4
- package/lib/schema/external-datasource.schema.json +47 -13
- package/lib/schema/flag-map-validation-run.json +2 -2
- package/lib/schema/protection.schema.json +374 -0
- package/lib/schema/type/credential-field-registry.json +636 -0
- package/lib/schema/wizard-config.schema.json +1 -1
- package/lib/utils/agent-trust-run-display.js +231 -0
- package/lib/utils/agent-trust-run-exit.js +59 -0
- package/lib/utils/agent-trust-wait-ui.js +94 -0
- package/lib/utils/cli-exit-codes.js +30 -0
- package/lib/utils/cli-sync-options.js +33 -0
- package/lib/utils/credential-push-ui.js +90 -0
- package/lib/utils/dataplane-cli-version-gate.js +202 -0
- package/lib/utils/dataplane-cli-version-help.js +74 -0
- package/lib/utils/datasource-export-display.js +137 -0
- package/lib/utils/datasource-load-display.js +174 -0
- package/lib/utils/datasource-load-export-ui.js +120 -0
- package/lib/utils/datasource-test-run-capability-scope.js +3 -3
- package/lib/utils/datasource-test-run-display.js +3 -3
- package/lib/utils/datasource-test-run-tty-log.js +5 -1
- package/lib/utils/help-builder.js +30 -24
- package/lib/utils/manifest-source-emit.js +22 -0
- package/lib/utils/semver-compare.js +127 -0
- package/lib/utils/upload-pipeline-ui.js +91 -0
- package/lib/utils/validation-poll-ui.js +14 -7
- package/lib/validation/wizard-config-validator.js +58 -19
- package/package.json +1 -1
- package/templates/applications/dataplane/env.template +13 -1
- package/templates/applications/dataplane/rbac.yaml +4 -0
- package/templates/external-system/README.md.hbs +56 -8
|
@@ -4,81 +4,84 @@
|
|
|
4
4
|
* @version 2.0.0
|
|
5
5
|
*/
|
|
6
6
|
|
|
7
|
-
const {
|
|
7
|
+
const { createDataplaneApiClient } = require('./index');
|
|
8
8
|
|
|
9
9
|
/** @requiresPermission {Dataplane} external-system:read (datasource list) */
|
|
10
10
|
async function listDatasources(dataplaneUrl, authConfig, options = {}) {
|
|
11
|
-
const client =
|
|
11
|
+
const client = createDataplaneApiClient(dataplaneUrl, authConfig);
|
|
12
12
|
return await client.get('/api/v1/external', { params: options });
|
|
13
13
|
}
|
|
14
14
|
/** @requiresPermission {Dataplane} external-system:create */
|
|
15
15
|
async function createDatasource(dataplaneUrl, authConfig, datasourceData) {
|
|
16
|
-
const client =
|
|
16
|
+
const client = createDataplaneApiClient(dataplaneUrl, authConfig);
|
|
17
17
|
return await client.post('/api/v1/external', { body: datasourceData });
|
|
18
18
|
}
|
|
19
19
|
/** @requiresPermission {Dataplane} external-system:read */
|
|
20
20
|
async function getDatasource(dataplaneUrl, sourceIdOrKey, authConfig) {
|
|
21
|
-
const client =
|
|
21
|
+
const client = createDataplaneApiClient(dataplaneUrl, authConfig);
|
|
22
22
|
return await client.get(`/api/v1/external/${sourceIdOrKey}`);
|
|
23
23
|
}
|
|
24
24
|
/** @requiresPermission {Dataplane} external-system:update */
|
|
25
25
|
async function updateDatasource(dataplaneUrl, sourceIdOrKey, authConfig, updateData) {
|
|
26
|
-
const client =
|
|
26
|
+
const client = createDataplaneApiClient(dataplaneUrl, authConfig);
|
|
27
27
|
return await client.put(`/api/v1/external/${sourceIdOrKey}`, { body: updateData });
|
|
28
28
|
}
|
|
29
29
|
/** @requiresPermission {Dataplane} external-system:delete */
|
|
30
30
|
async function deleteDatasource(dataplaneUrl, sourceIdOrKey, authConfig) {
|
|
31
|
-
const client =
|
|
31
|
+
const client = createDataplaneApiClient(dataplaneUrl, authConfig);
|
|
32
32
|
return await client.delete(`/api/v1/external/${sourceIdOrKey}`);
|
|
33
33
|
}
|
|
34
34
|
/** @requiresPermission {Dataplane} external-system:read */
|
|
35
35
|
async function getDatasourceConfig(dataplaneUrl, sourceIdOrKey, authConfig) {
|
|
36
|
-
const client =
|
|
36
|
+
const client = createDataplaneApiClient(dataplaneUrl, authConfig);
|
|
37
37
|
return await client.get(`/api/v1/external/${sourceIdOrKey}/config`);
|
|
38
38
|
}
|
|
39
39
|
/** @requiresPermission {Dataplane} external-system:update */
|
|
40
40
|
async function publishDatasource(dataplaneUrl, sourceIdOrKey, authConfig, publishData = {}) {
|
|
41
|
-
const client =
|
|
41
|
+
const client = createDataplaneApiClient(dataplaneUrl, authConfig);
|
|
42
42
|
return await client.post(`/api/v1/external/${sourceIdOrKey}/publish`, { body: publishData });
|
|
43
43
|
}
|
|
44
44
|
/** @requiresPermission {Dataplane} external-system:update */
|
|
45
45
|
async function rollbackDatasource(dataplaneUrl, sourceIdOrKey, authConfig, rollbackData) {
|
|
46
|
-
const client =
|
|
46
|
+
const client = createDataplaneApiClient(dataplaneUrl, authConfig);
|
|
47
47
|
return await client.post(`/api/v1/external/${sourceIdOrKey}/rollback`, { body: rollbackData });
|
|
48
48
|
}
|
|
49
49
|
/** @requiresPermission {Dataplane} external-system:read */
|
|
50
50
|
async function testDatasource(dataplaneUrl, sourceIdOrKey, authConfig, testData = {}) {
|
|
51
|
-
const client =
|
|
51
|
+
const client = createDataplaneApiClient(dataplaneUrl, authConfig);
|
|
52
52
|
return await client.post(`/api/v1/external/${sourceIdOrKey}/test`, { body: testData });
|
|
53
53
|
}
|
|
54
54
|
/** @requiresPermission {Dataplane} external-system:read */
|
|
55
55
|
async function listDatasourceOpenAPIEndpoints(dataplaneUrl, sourceIdOrKey, authConfig, options = {}) {
|
|
56
|
-
const client =
|
|
56
|
+
const client = createDataplaneApiClient(dataplaneUrl, authConfig);
|
|
57
57
|
return await client.get(`/api/v1/external/${sourceIdOrKey}/openapi-endpoints`, { params: options });
|
|
58
58
|
}
|
|
59
59
|
/** @requiresPermission {Dataplane} audit:read or external-system:read */
|
|
60
60
|
async function listExecutionLogs(dataplaneUrl, sourceIdOrKey, authConfig, options = {}) {
|
|
61
|
-
const client =
|
|
61
|
+
const client = createDataplaneApiClient(dataplaneUrl, authConfig);
|
|
62
62
|
return await client.get(`/api/v1/external/${sourceIdOrKey}/executions`, { params: options });
|
|
63
63
|
}
|
|
64
64
|
/** @requiresPermission {Dataplane} audit:read or external-system:read */
|
|
65
65
|
async function getExecutionLog(dataplaneUrl, sourceIdOrKey, executionId, authConfig) {
|
|
66
|
-
const client =
|
|
66
|
+
const client = createDataplaneApiClient(dataplaneUrl, authConfig);
|
|
67
67
|
return await client.get(`/api/v1/external/${sourceIdOrKey}/executions/${executionId}`);
|
|
68
68
|
}
|
|
69
69
|
/** @requiresPermission {Dataplane} audit:read */
|
|
70
70
|
async function listAllExecutionLogs(dataplaneUrl, authConfig, options = {}) {
|
|
71
|
-
const client =
|
|
71
|
+
const client = createDataplaneApiClient(dataplaneUrl, authConfig);
|
|
72
72
|
return await client.get('/api/v1/external/executions', { params: options });
|
|
73
73
|
}
|
|
74
|
-
/**
|
|
74
|
+
/**
|
|
75
|
+
* @deprecated Prefer {@link module:lib/api/records-bulk.api.bulkSyncRecords}.
|
|
76
|
+
* @requiresPermission {Dataplane} external-data-source:sync
|
|
77
|
+
*/
|
|
75
78
|
async function bulkOperation(dataplaneUrl, sourceIdOrKey, authConfig, bulkData) {
|
|
76
|
-
const
|
|
77
|
-
return await
|
|
79
|
+
const { bulkSyncRecords } = require('./records-bulk.api');
|
|
80
|
+
return await bulkSyncRecords(dataplaneUrl, sourceIdOrKey, authConfig, bulkData);
|
|
78
81
|
}
|
|
79
82
|
/** @requiresPermission {Dataplane} external-system:read */
|
|
80
83
|
async function getDatasourceStatus(dataplaneUrl, sourceIdOrKey, authConfig) {
|
|
81
|
-
const client =
|
|
84
|
+
const client = createDataplaneApiClient(dataplaneUrl, authConfig);
|
|
82
85
|
return await client.get(`/api/v1/external/${sourceIdOrKey}/status`);
|
|
83
86
|
}
|
|
84
87
|
|
|
@@ -4,107 +4,107 @@
|
|
|
4
4
|
* @version 2.0.0
|
|
5
5
|
*/
|
|
6
6
|
|
|
7
|
-
const {
|
|
7
|
+
const { createDataplaneApiClient } = require('./index');
|
|
8
8
|
|
|
9
9
|
/** @requiresPermission {Dataplane} external-system:read (records) */
|
|
10
10
|
async function listRecords(dataplaneUrl, sourceIdOrKey, authConfig, options = {}) {
|
|
11
|
-
const client =
|
|
11
|
+
const client = createDataplaneApiClient(dataplaneUrl, authConfig);
|
|
12
12
|
return await client.get(`/api/v1/external/${sourceIdOrKey}/records`, { params: options });
|
|
13
13
|
}
|
|
14
14
|
/** @requiresPermission {Dataplane} external-system:create */
|
|
15
15
|
async function createRecord(dataplaneUrl, sourceIdOrKey, authConfig, recordData) {
|
|
16
|
-
const client =
|
|
16
|
+
const client = createDataplaneApiClient(dataplaneUrl, authConfig);
|
|
17
17
|
return await client.post(`/api/v1/external/${sourceIdOrKey}/records`, { body: recordData });
|
|
18
18
|
}
|
|
19
19
|
/** @requiresPermission {Dataplane} external-system:read */
|
|
20
20
|
async function getRecord(dataplaneUrl, sourceIdOrKey, recordIdOrKey, authConfig) {
|
|
21
|
-
const client =
|
|
21
|
+
const client = createDataplaneApiClient(dataplaneUrl, authConfig);
|
|
22
22
|
return await client.get(`/api/v1/external/${sourceIdOrKey}/records/${recordIdOrKey}`);
|
|
23
23
|
}
|
|
24
24
|
/** @requiresPermission {Dataplane} external-system:update */
|
|
25
25
|
async function updateRecord(dataplaneUrl, sourceIdOrKey, recordIdOrKey, authConfig, updateData) {
|
|
26
|
-
const client =
|
|
26
|
+
const client = createDataplaneApiClient(dataplaneUrl, authConfig);
|
|
27
27
|
return await client.put(`/api/v1/external/${sourceIdOrKey}/records/${recordIdOrKey}`, { body: updateData });
|
|
28
28
|
}
|
|
29
29
|
/** @requiresPermission {Dataplane} external-system:delete */
|
|
30
30
|
async function deleteRecord(dataplaneUrl, sourceIdOrKey, recordIdOrKey, authConfig) {
|
|
31
|
-
const client =
|
|
31
|
+
const client = createDataplaneApiClient(dataplaneUrl, authConfig);
|
|
32
32
|
return await client.delete(`/api/v1/external/${sourceIdOrKey}/records/${recordIdOrKey}`);
|
|
33
33
|
}
|
|
34
34
|
/** @requiresPermission {Dataplane} external-system:read (grants) */
|
|
35
35
|
async function listGrants(dataplaneUrl, sourceIdOrKey, authConfig, options = {}) {
|
|
36
|
-
const client =
|
|
36
|
+
const client = createDataplaneApiClient(dataplaneUrl, authConfig);
|
|
37
37
|
return await client.get(`/api/v1/external/${sourceIdOrKey}/grants`, { params: options });
|
|
38
38
|
}
|
|
39
39
|
/** @requiresPermission {Dataplane} external-system:update */
|
|
40
40
|
async function createGrant(dataplaneUrl, sourceIdOrKey, authConfig, grantData) {
|
|
41
|
-
const client =
|
|
41
|
+
const client = createDataplaneApiClient(dataplaneUrl, authConfig);
|
|
42
42
|
return await client.post(`/api/v1/external/${sourceIdOrKey}/grants`, { body: grantData });
|
|
43
43
|
}
|
|
44
44
|
/** @requiresPermission {Dataplane} external-system:read */
|
|
45
45
|
async function getGrant(dataplaneUrl, sourceIdOrKey, grantIdOrKey, authConfig) {
|
|
46
|
-
const client =
|
|
46
|
+
const client = createDataplaneApiClient(dataplaneUrl, authConfig);
|
|
47
47
|
return await client.get(`/api/v1/external/${sourceIdOrKey}/grants/${grantIdOrKey}`);
|
|
48
48
|
}
|
|
49
49
|
/** @requiresPermission {Dataplane} external-system:update */
|
|
50
50
|
async function updateGrant(dataplaneUrl, sourceIdOrKey, grantIdOrKey, authConfig, updateData) {
|
|
51
|
-
const client =
|
|
51
|
+
const client = createDataplaneApiClient(dataplaneUrl, authConfig);
|
|
52
52
|
return await client.put(`/api/v1/external/${sourceIdOrKey}/grants/${grantIdOrKey}`, { body: updateData });
|
|
53
53
|
}
|
|
54
54
|
async function deleteGrant(dataplaneUrl, sourceIdOrKey, grantIdOrKey, authConfig) {
|
|
55
|
-
const client =
|
|
55
|
+
const client = createDataplaneApiClient(dataplaneUrl, authConfig);
|
|
56
56
|
return await client.delete(`/api/v1/external/${sourceIdOrKey}/grants/${grantIdOrKey}`);
|
|
57
57
|
}
|
|
58
58
|
/** @requiresPermission {Dataplane} external-system:read (policies) */
|
|
59
59
|
async function listPolicies(dataplaneUrl, sourceIdOrKey, authConfig, options = {}) {
|
|
60
|
-
const client =
|
|
60
|
+
const client = createDataplaneApiClient(dataplaneUrl, authConfig);
|
|
61
61
|
return await client.get(`/api/v1/external/${sourceIdOrKey}/policies`, { params: options });
|
|
62
62
|
}
|
|
63
63
|
/** @requiresPermission {Dataplane} external-system:update */
|
|
64
64
|
async function attachPolicy(dataplaneUrl, sourceIdOrKey, authConfig, policyData) {
|
|
65
|
-
const client =
|
|
65
|
+
const client = createDataplaneApiClient(dataplaneUrl, authConfig);
|
|
66
66
|
return await client.post(`/api/v1/external/${sourceIdOrKey}/policies`, { body: policyData });
|
|
67
67
|
}
|
|
68
68
|
async function detachPolicy(dataplaneUrl, sourceIdOrKey, policyIdOrKey, authConfig) {
|
|
69
|
-
const client =
|
|
69
|
+
const client = createDataplaneApiClient(dataplaneUrl, authConfig);
|
|
70
70
|
return await client.delete(`/api/v1/external/${sourceIdOrKey}/policies/${policyIdOrKey}`);
|
|
71
71
|
}
|
|
72
72
|
/** @requiresPermission {Dataplane} external-system:read (sync) */
|
|
73
73
|
async function listSyncJobs(dataplaneUrl, sourceIdOrKey, authConfig, options = {}) {
|
|
74
|
-
const client =
|
|
74
|
+
const client = createDataplaneApiClient(dataplaneUrl, authConfig);
|
|
75
75
|
return await client.get(`/api/v1/external/${sourceIdOrKey}/sync`, { params: options });
|
|
76
76
|
}
|
|
77
77
|
async function createSyncJob(dataplaneUrl, sourceIdOrKey, authConfig, syncData) {
|
|
78
|
-
const client =
|
|
78
|
+
const client = createDataplaneApiClient(dataplaneUrl, authConfig);
|
|
79
79
|
return await client.post(`/api/v1/external/${sourceIdOrKey}/sync`, { body: syncData });
|
|
80
80
|
}
|
|
81
81
|
/** @requiresPermission {Dataplane} external-system:read */
|
|
82
82
|
async function getSyncJob(dataplaneUrl, sourceIdOrKey, syncJobId, authConfig) {
|
|
83
|
-
const client =
|
|
83
|
+
const client = createDataplaneApiClient(dataplaneUrl, authConfig);
|
|
84
84
|
return await client.get(`/api/v1/external/${sourceIdOrKey}/sync/${syncJobId}`);
|
|
85
85
|
}
|
|
86
86
|
/** @requiresPermission {Dataplane} external-system:update */
|
|
87
87
|
async function updateSyncJob(dataplaneUrl, sourceIdOrKey, syncJobId, authConfig, updateData) {
|
|
88
|
-
const client =
|
|
88
|
+
const client = createDataplaneApiClient(dataplaneUrl, authConfig);
|
|
89
89
|
return await client.put(`/api/v1/external/${sourceIdOrKey}/sync/${syncJobId}`, { body: updateData });
|
|
90
90
|
}
|
|
91
91
|
async function executeSyncJob(dataplaneUrl, sourceIdOrKey, syncJobId, authConfig) {
|
|
92
|
-
const client =
|
|
92
|
+
const client = createDataplaneApiClient(dataplaneUrl, authConfig);
|
|
93
93
|
return await client.post(`/api/v1/external/${sourceIdOrKey}/sync/${syncJobId}/execute`);
|
|
94
94
|
}
|
|
95
95
|
/** @requiresPermission {Dataplane} document-record or external-system scope */
|
|
96
96
|
async function validateDocuments(dataplaneUrl, sourceIdOrKey, authConfig, validateData) {
|
|
97
|
-
const client =
|
|
97
|
+
const client = createDataplaneApiClient(dataplaneUrl, authConfig);
|
|
98
98
|
return await client.post(`/api/v1/external/data-sources/${sourceIdOrKey}/documents/validate`, { body: validateData });
|
|
99
99
|
}
|
|
100
100
|
/** @requiresPermission {Dataplane} document-record or external-system scope */
|
|
101
101
|
async function bulkDocuments(dataplaneUrl, sourceIdOrKey, authConfig, bulkData) {
|
|
102
|
-
const client =
|
|
102
|
+
const client = createDataplaneApiClient(dataplaneUrl, authConfig);
|
|
103
103
|
return await client.post(`/api/v1/external/data-sources/${sourceIdOrKey}/documents/bulk`, { body: bulkData });
|
|
104
104
|
}
|
|
105
105
|
/** @requiresPermission {Dataplane} document-record:read or external-system:read */
|
|
106
106
|
async function listDocuments(dataplaneUrl, sourceIdOrKey, authConfig, options = {}) {
|
|
107
|
-
const client =
|
|
107
|
+
const client = createDataplaneApiClient(dataplaneUrl, authConfig);
|
|
108
108
|
return await client.get(`/api/v1/external/data-sources/${sourceIdOrKey}/documents`, { params: options });
|
|
109
109
|
}
|
|
110
110
|
|
|
@@ -68,6 +68,9 @@ async function createDimension(controllerUrl, authConfig, body) {
|
|
|
68
68
|
displayName: body.displayName,
|
|
69
69
|
dataType: body.dataType
|
|
70
70
|
};
|
|
71
|
+
if (body.valueType !== undefined && body.valueType !== null && body.valueType !== '') {
|
|
72
|
+
payload.valueType = body.valueType;
|
|
73
|
+
}
|
|
71
74
|
if (body.description !== undefined && body.description !== null && body.description !== '') {
|
|
72
75
|
payload.description = body.description;
|
|
73
76
|
}
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
* @version 2.0.0
|
|
5
5
|
*/
|
|
6
6
|
|
|
7
|
-
const {
|
|
7
|
+
const { createDataplaneApiClient } = require('./index');
|
|
8
8
|
|
|
9
9
|
/**
|
|
10
10
|
* List external systems
|
|
@@ -24,7 +24,7 @@ const { ApiClient } = require('./index');
|
|
|
24
24
|
* @throws {Error} If request fails
|
|
25
25
|
*/
|
|
26
26
|
async function listExternalSystems(dataplaneUrl, authConfig, options = {}) {
|
|
27
|
-
const client =
|
|
27
|
+
const client = createDataplaneApiClient(dataplaneUrl, authConfig);
|
|
28
28
|
return await client.get('/api/v1/external/systems', {
|
|
29
29
|
params: options
|
|
30
30
|
});
|
|
@@ -43,7 +43,7 @@ async function listExternalSystems(dataplaneUrl, authConfig, options = {}) {
|
|
|
43
43
|
* @throws {Error} If creation fails
|
|
44
44
|
*/
|
|
45
45
|
async function createExternalSystem(dataplaneUrl, authConfig, systemData) {
|
|
46
|
-
const client =
|
|
46
|
+
const client = createDataplaneApiClient(dataplaneUrl, authConfig);
|
|
47
47
|
return await client.post('/api/v1/external/systems', {
|
|
48
48
|
body: systemData
|
|
49
49
|
});
|
|
@@ -66,7 +66,7 @@ async function createExternalSystem(dataplaneUrl, authConfig, systemData) {
|
|
|
66
66
|
* @throws {Error} If request fails
|
|
67
67
|
*/
|
|
68
68
|
async function getExternalSystem(dataplaneUrl, systemIdOrKey, authConfig) {
|
|
69
|
-
const client =
|
|
69
|
+
const client = createDataplaneApiClient(dataplaneUrl, authConfig);
|
|
70
70
|
return await client.get(`/api/v1/external/systems/${systemIdOrKey}`);
|
|
71
71
|
}
|
|
72
72
|
|
|
@@ -84,7 +84,7 @@ async function getExternalSystem(dataplaneUrl, systemIdOrKey, authConfig) {
|
|
|
84
84
|
* @throws {Error} If update fails
|
|
85
85
|
*/
|
|
86
86
|
async function updateExternalSystem(dataplaneUrl, systemIdOrKey, authConfig, updateData) {
|
|
87
|
-
const client =
|
|
87
|
+
const client = createDataplaneApiClient(dataplaneUrl, authConfig);
|
|
88
88
|
return await client.put(`/api/v1/external/systems/${systemIdOrKey}`, {
|
|
89
89
|
body: updateData
|
|
90
90
|
});
|
|
@@ -103,7 +103,7 @@ async function updateExternalSystem(dataplaneUrl, systemIdOrKey, authConfig, upd
|
|
|
103
103
|
* @throws {Error} If deletion fails
|
|
104
104
|
*/
|
|
105
105
|
async function deleteExternalSystem(dataplaneUrl, systemIdOrKey, authConfig) {
|
|
106
|
-
const client =
|
|
106
|
+
const client = createDataplaneApiClient(dataplaneUrl, authConfig);
|
|
107
107
|
return await client.delete(`/api/v1/external/systems/${systemIdOrKey}`);
|
|
108
108
|
}
|
|
109
109
|
|
|
@@ -120,7 +120,7 @@ async function deleteExternalSystem(dataplaneUrl, systemIdOrKey, authConfig) {
|
|
|
120
120
|
* @throws {Error} If request fails
|
|
121
121
|
*/
|
|
122
122
|
async function getExternalSystemConfig(dataplaneUrl, systemIdOrKey, authConfig) {
|
|
123
|
-
const client =
|
|
123
|
+
const client = createDataplaneApiClient(dataplaneUrl, authConfig);
|
|
124
124
|
return await client.get(`/api/v1/external/systems/${systemIdOrKey}/config`);
|
|
125
125
|
}
|
|
126
126
|
|
|
@@ -140,7 +140,7 @@ async function getExternalSystemConfig(dataplaneUrl, systemIdOrKey, authConfig)
|
|
|
140
140
|
* @throws {Error} If creation fails
|
|
141
141
|
*/
|
|
142
142
|
async function createFromTemplate(dataplaneUrl, authConfig, templateData) {
|
|
143
|
-
const client =
|
|
143
|
+
const client = createDataplaneApiClient(dataplaneUrl, authConfig);
|
|
144
144
|
return await client.post('/api/v1/external/systems/from-template', {
|
|
145
145
|
body: templateData
|
|
146
146
|
});
|
|
@@ -160,7 +160,7 @@ async function createFromTemplate(dataplaneUrl, authConfig, templateData) {
|
|
|
160
160
|
* @throws {Error} If request fails
|
|
161
161
|
*/
|
|
162
162
|
async function listOpenAPIFiles(dataplaneUrl, systemIdOrKey, authConfig, options = {}) {
|
|
163
|
-
const client =
|
|
163
|
+
const client = createDataplaneApiClient(dataplaneUrl, authConfig);
|
|
164
164
|
return await client.get(`/api/v1/external/systems/${systemIdOrKey}/openapi-files`, {
|
|
165
165
|
params: options
|
|
166
166
|
});
|
|
@@ -180,7 +180,7 @@ async function listOpenAPIFiles(dataplaneUrl, systemIdOrKey, authConfig, options
|
|
|
180
180
|
* @throws {Error} If request fails
|
|
181
181
|
*/
|
|
182
182
|
async function listOpenAPIEndpoints(dataplaneUrl, systemIdOrKey, authConfig, options = {}) {
|
|
183
|
-
const client =
|
|
183
|
+
const client = createDataplaneApiClient(dataplaneUrl, authConfig);
|
|
184
184
|
return await client.get(`/api/v1/external/systems/${systemIdOrKey}/openapi-endpoints`, {
|
|
185
185
|
params: options
|
|
186
186
|
});
|
|
@@ -201,7 +201,7 @@ async function listOpenAPIEndpoints(dataplaneUrl, systemIdOrKey, authConfig, opt
|
|
|
201
201
|
* @throws {Error} If publish fails
|
|
202
202
|
*/
|
|
203
203
|
async function publishExternalSystem(dataplaneUrl, systemIdOrKey, authConfig, publishData = {}) {
|
|
204
|
-
const client =
|
|
204
|
+
const client = createDataplaneApiClient(dataplaneUrl, authConfig);
|
|
205
205
|
return await client.post(`/api/v1/external/systems/${systemIdOrKey}/publish`, {
|
|
206
206
|
body: publishData
|
|
207
207
|
});
|
|
@@ -222,7 +222,7 @@ async function publishExternalSystem(dataplaneUrl, systemIdOrKey, authConfig, pu
|
|
|
222
222
|
* @throws {Error} If rollback fails
|
|
223
223
|
*/
|
|
224
224
|
async function rollbackExternalSystem(dataplaneUrl, systemIdOrKey, authConfig, rollbackData) {
|
|
225
|
-
const client =
|
|
225
|
+
const client = createDataplaneApiClient(dataplaneUrl, authConfig);
|
|
226
226
|
return await client.post(`/api/v1/external/systems/${systemIdOrKey}/rollback`, {
|
|
227
227
|
body: rollbackData
|
|
228
228
|
});
|
|
@@ -244,7 +244,7 @@ async function rollbackExternalSystem(dataplaneUrl, systemIdOrKey, authConfig, r
|
|
|
244
244
|
* @throws {Error} If save fails
|
|
245
245
|
*/
|
|
246
246
|
async function saveAsTemplate(dataplaneUrl, systemIdOrKey, authConfig, templateData) {
|
|
247
|
-
const client =
|
|
247
|
+
const client = createDataplaneApiClient(dataplaneUrl, authConfig);
|
|
248
248
|
return await client.post(`/api/v1/external/systems/${systemIdOrKey}/save-template`, {
|
|
249
249
|
body: templateData
|
|
250
250
|
});
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @fileoverview Dataplane governance scenario acceptance API
|
|
3
|
+
* @author AI Fabrix Team
|
|
4
|
+
* @version 1.0.0
|
|
5
|
+
*/
|
|
6
|
+
|
|
7
|
+
const { createDataplaneApiClient } = require('./index');
|
|
8
|
+
const { unwrapApiData } = require('../utils/external-system-readiness-core');
|
|
9
|
+
|
|
10
|
+
/**
|
|
11
|
+
* Run governance scenario pack (ABAC visibility proof).
|
|
12
|
+
* POST /api/v1/governance/scenarios/run
|
|
13
|
+
* @requiresPermission {Dataplane} governance:evaluate
|
|
14
|
+
* @async
|
|
15
|
+
* @param {string} dataplaneUrl
|
|
16
|
+
* @param {Object} authConfig
|
|
17
|
+
* @param {import('./types/governance-scenarios.types').GovernanceScenariosRunRequest} body
|
|
18
|
+
* @returns {Promise<import('./types/governance-scenarios.types').GovernanceScenariosRunResponse>}
|
|
19
|
+
*/
|
|
20
|
+
async function runGovernanceScenarios(dataplaneUrl, authConfig, body) {
|
|
21
|
+
const client = createDataplaneApiClient(dataplaneUrl, authConfig);
|
|
22
|
+
const res = await client.post('/api/v1/governance/scenarios/run', { body });
|
|
23
|
+
if (res && res.success === false) {
|
|
24
|
+
const msg =
|
|
25
|
+
(res.error && (res.error.formattedError || res.error.error || res.error.message)) ||
|
|
26
|
+
res.formattedError ||
|
|
27
|
+
'Governance scenario run failed';
|
|
28
|
+
throw new Error(msg);
|
|
29
|
+
}
|
|
30
|
+
const unwrapped = unwrapApiData(res);
|
|
31
|
+
if (!unwrapped || !unwrapped.summary) {
|
|
32
|
+
throw new Error('Governance scenario run returned an unexpected response shape');
|
|
33
|
+
}
|
|
34
|
+
return unwrapped;
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
module.exports = {
|
|
38
|
+
runGovernanceScenarios
|
|
39
|
+
};
|
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @fileoverview Groups API (Controller /api/v1/groups)
|
|
3
|
+
* @author AI Fabrix Team
|
|
4
|
+
* @version 1.0.0
|
|
5
|
+
*/
|
|
6
|
+
|
|
7
|
+
'use strict';
|
|
8
|
+
|
|
9
|
+
const { ApiClient } = require('./index');
|
|
10
|
+
|
|
11
|
+
const BASE = '/api/v1/groups';
|
|
12
|
+
|
|
13
|
+
/**
|
|
14
|
+
* List groups (paginated)
|
|
15
|
+
* @requiresPermission {Controller} groups:read
|
|
16
|
+
* @async
|
|
17
|
+
* @param {string} controllerUrl
|
|
18
|
+
* @param {Object} authConfig
|
|
19
|
+
* @param {Object} [options]
|
|
20
|
+
* @returns {Promise<Object>}
|
|
21
|
+
*/
|
|
22
|
+
async function listGroups(controllerUrl, authConfig, options = {}) {
|
|
23
|
+
const client = new ApiClient(controllerUrl, authConfig);
|
|
24
|
+
return await client.get(BASE, { params: options });
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
/**
|
|
28
|
+
* Get group by id or name
|
|
29
|
+
* @requiresPermission {Controller} groups:read
|
|
30
|
+
* @async
|
|
31
|
+
* @param {string} controllerUrl
|
|
32
|
+
* @param {Object} authConfig
|
|
33
|
+
* @param {string} groupIdOrName
|
|
34
|
+
* @param {Object} [options]
|
|
35
|
+
* @returns {Promise<Object>}
|
|
36
|
+
*/
|
|
37
|
+
async function getGroup(controllerUrl, authConfig, groupIdOrName, options = {}) {
|
|
38
|
+
const client = new ApiClient(controllerUrl, authConfig);
|
|
39
|
+
const params = {};
|
|
40
|
+
if (options.includeMembers) {
|
|
41
|
+
params.includeMembers = 'true';
|
|
42
|
+
}
|
|
43
|
+
return await client.get(`${BASE}/${encodeURIComponent(groupIdOrName)}`, { params });
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
/**
|
|
47
|
+
* Create group
|
|
48
|
+
* @requiresPermission {Controller} groups:create
|
|
49
|
+
* @async
|
|
50
|
+
* @param {string} controllerUrl
|
|
51
|
+
* @param {Object} authConfig
|
|
52
|
+
* @param {Object} body
|
|
53
|
+
* @returns {Promise<Object>}
|
|
54
|
+
*/
|
|
55
|
+
async function createGroup(controllerUrl, authConfig, body) {
|
|
56
|
+
const client = new ApiClient(controllerUrl, authConfig);
|
|
57
|
+
return await client.post(BASE, { body });
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
/**
|
|
61
|
+
* List group members
|
|
62
|
+
* @requiresPermission {Controller} groups:read
|
|
63
|
+
* @async
|
|
64
|
+
* @param {string} controllerUrl
|
|
65
|
+
* @param {Object} authConfig
|
|
66
|
+
* @param {string} groupIdOrName
|
|
67
|
+
* @returns {Promise<Object>}
|
|
68
|
+
*/
|
|
69
|
+
async function listGroupMembers(controllerUrl, authConfig, groupIdOrName) {
|
|
70
|
+
const client = new ApiClient(controllerUrl, authConfig);
|
|
71
|
+
return await client.get(`${BASE}/${encodeURIComponent(groupIdOrName)}/members`);
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
module.exports = {
|
|
75
|
+
listGroups,
|
|
76
|
+
getGroup,
|
|
77
|
+
createGroup,
|
|
78
|
+
listGroupMembers
|
|
79
|
+
};
|
package/lib/api/index.js
CHANGED
|
@@ -20,7 +20,7 @@ class ApiClient {
|
|
|
20
20
|
* @param {string} [authConfig.type] - Auth type ('bearer' | 'client-token')
|
|
21
21
|
* @param {string} [authConfig.token] - Bearer token
|
|
22
22
|
*/
|
|
23
|
-
constructor(baseUrl, authConfig = {}) {
|
|
23
|
+
constructor(baseUrl, authConfig = {}, clientOptions = {}) {
|
|
24
24
|
if (baseUrl === null || baseUrl === undefined || typeof baseUrl !== 'string') {
|
|
25
25
|
throw new Error('baseUrl is required and must be a string');
|
|
26
26
|
}
|
|
@@ -30,6 +30,25 @@ class ApiClient {
|
|
|
30
30
|
}
|
|
31
31
|
this.baseUrl = trimmedUrl;
|
|
32
32
|
this.authConfig = authConfig;
|
|
33
|
+
const opts = clientOptions && typeof clientOptions === 'object' ? clientOptions : {};
|
|
34
|
+
this.enforceCliVersion = Boolean(opts.enforceCliVersion);
|
|
35
|
+
this.controllerUrlForGate = opts.controllerUrl || null;
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
/**
|
|
39
|
+
* Plan 142.0: block dataplane mutations when Builder CLI is below minimum.
|
|
40
|
+
* @private
|
|
41
|
+
* @async
|
|
42
|
+
* @returns {Promise<void>}
|
|
43
|
+
*/
|
|
44
|
+
async _ensureDataplaneCliVersionGate() {
|
|
45
|
+
if (!this.enforceCliVersion) {
|
|
46
|
+
return;
|
|
47
|
+
}
|
|
48
|
+
const { assertDataplaneCliVersionCompatible } = require('../utils/dataplane-cli-version-gate');
|
|
49
|
+
await assertDataplaneCliVersionCompatible(this.baseUrl, {
|
|
50
|
+
controllerUrl: this.controllerUrlForGate
|
|
51
|
+
});
|
|
33
52
|
}
|
|
34
53
|
|
|
35
54
|
/**
|
|
@@ -78,6 +97,7 @@ class ApiClient {
|
|
|
78
97
|
* @returns {Promise<Object>} API response
|
|
79
98
|
*/
|
|
80
99
|
async get(endpoint, options = {}) {
|
|
100
|
+
await this._ensureDataplaneCliVersionGate();
|
|
81
101
|
let url = this._buildUrl(endpoint);
|
|
82
102
|
const headers = this._buildHeaders(options.headers);
|
|
83
103
|
|
|
@@ -119,6 +139,7 @@ class ApiClient {
|
|
|
119
139
|
* @returns {Promise<Object>} API response
|
|
120
140
|
*/
|
|
121
141
|
async post(endpoint, options = {}) {
|
|
142
|
+
await this._ensureDataplaneCliVersionGate();
|
|
122
143
|
let url = this._buildUrl(endpoint);
|
|
123
144
|
const headers = this._buildHeaders(options.headers);
|
|
124
145
|
|
|
@@ -167,6 +188,7 @@ class ApiClient {
|
|
|
167
188
|
* @returns {Promise<Object>} API response
|
|
168
189
|
*/
|
|
169
190
|
async postFormData(endpoint, formData, options = {}) {
|
|
191
|
+
await this._ensureDataplaneCliVersionGate();
|
|
170
192
|
const url = this._buildUrl(endpoint);
|
|
171
193
|
const headers = this._buildHeaders(options.headers || {}, { skipContentType: true });
|
|
172
194
|
|
|
@@ -194,6 +216,7 @@ class ApiClient {
|
|
|
194
216
|
* @returns {Promise<Object>} API response
|
|
195
217
|
*/
|
|
196
218
|
async patch(endpoint, options = {}) {
|
|
219
|
+
await this._ensureDataplaneCliVersionGate();
|
|
197
220
|
const url = this._buildUrl(endpoint);
|
|
198
221
|
const headers = this._buildHeaders(options.headers);
|
|
199
222
|
|
|
@@ -224,6 +247,7 @@ class ApiClient {
|
|
|
224
247
|
* @returns {Promise<Object>} API response
|
|
225
248
|
*/
|
|
226
249
|
async put(endpoint, options = {}) {
|
|
250
|
+
await this._ensureDataplaneCliVersionGate();
|
|
227
251
|
const url = this._buildUrl(endpoint);
|
|
228
252
|
const headers = this._buildHeaders(options.headers);
|
|
229
253
|
|
|
@@ -253,6 +277,7 @@ class ApiClient {
|
|
|
253
277
|
* @returns {Promise<Object>} API response
|
|
254
278
|
*/
|
|
255
279
|
async delete(endpoint, options = {}) {
|
|
280
|
+
await this._ensureDataplaneCliVersionGate();
|
|
256
281
|
const url = this._buildUrl(endpoint);
|
|
257
282
|
const headers = this._buildHeaders(options.headers);
|
|
258
283
|
|
|
@@ -270,7 +295,25 @@ class ApiClient {
|
|
|
270
295
|
}
|
|
271
296
|
}
|
|
272
297
|
|
|
298
|
+
/**
|
|
299
|
+
* Dataplane-scoped client — enforces Builder CLI version gate before each request.
|
|
300
|
+
* Do not use for `fetchDataplaneGeneralHealth` (health must stay ungated).
|
|
301
|
+
*
|
|
302
|
+
* @param {string} dataplaneUrl - Dataplane base URL
|
|
303
|
+
* @param {Object} authConfig - Authentication configuration
|
|
304
|
+
* @param {Object} [options]
|
|
305
|
+
* @param {string} [options.controllerUrl] - Controller URL for device cache lookup
|
|
306
|
+
* @returns {ApiClient}
|
|
307
|
+
*/
|
|
308
|
+
function createDataplaneApiClient(dataplaneUrl, authConfig, options = {}) {
|
|
309
|
+
return new ApiClient(dataplaneUrl, authConfig, {
|
|
310
|
+
enforceCliVersion: true,
|
|
311
|
+
controllerUrl: options.controllerUrl
|
|
312
|
+
});
|
|
313
|
+
}
|
|
314
|
+
|
|
273
315
|
module.exports = {
|
|
274
|
-
ApiClient
|
|
316
|
+
ApiClient,
|
|
317
|
+
createDataplaneApiClient
|
|
275
318
|
};
|
|
276
319
|
|
package/lib/api/pipeline.api.js
CHANGED
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
* @version 2.0.0
|
|
5
5
|
*/
|
|
6
6
|
|
|
7
|
-
const { ApiClient } = require('./index');
|
|
7
|
+
const { ApiClient, createDataplaneApiClient } = require('./index');
|
|
8
8
|
const { postValidationRunAndOptionalPoll } = require('./validation-runner');
|
|
9
9
|
|
|
10
10
|
/**
|
|
@@ -127,7 +127,7 @@ async function getPipelineHealth(controllerUrl, envKey) {
|
|
|
127
127
|
* @throws {Error} If publish fails
|
|
128
128
|
*/
|
|
129
129
|
async function publishDatasourceViaPipeline(dataplaneUrl, systemKey, authConfig, datasourceConfig) {
|
|
130
|
-
const client =
|
|
130
|
+
const client = createDataplaneApiClient(dataplaneUrl, authConfig);
|
|
131
131
|
return await client.post(`/api/v1/pipeline/${systemKey}/upload`, {
|
|
132
132
|
body: datasourceConfig
|
|
133
133
|
});
|
|
@@ -147,7 +147,7 @@ async function publishDatasourceViaPipeline(dataplaneUrl, systemKey, authConfig,
|
|
|
147
147
|
* @throws {Error} If request fails
|
|
148
148
|
*/
|
|
149
149
|
async function validatePipelineConfig(dataplaneUrl, authConfig, { config }) {
|
|
150
|
-
const client =
|
|
150
|
+
const client = createDataplaneApiClient(dataplaneUrl, authConfig);
|
|
151
151
|
return await client.post('/api/v1/pipeline/validate', {
|
|
152
152
|
body: { config }
|
|
153
153
|
});
|
|
@@ -247,7 +247,7 @@ async function testDatasourceViaPipeline({ dataplaneUrl, systemKey, datasourceKe
|
|
|
247
247
|
*/
|
|
248
248
|
async function uploadApplicationViaPipeline(dataplaneUrl, authConfig, payload) {
|
|
249
249
|
const body = { ...payload, status: payload.status ?? 'draft' };
|
|
250
|
-
const client =
|
|
250
|
+
const client = createDataplaneApiClient(dataplaneUrl, authConfig);
|
|
251
251
|
return await client.post('/api/v1/pipeline/upload', {
|
|
252
252
|
body
|
|
253
253
|
});
|