Skip to content

Commit

Permalink
Add workspace ID to connector check calls to fix segment tracking (#1…
Browse files Browse the repository at this point in the history
…7816)

* add workspace ID to source/dest check and discover endpoints

* pass workspaceId to API from frontend

* make it work for destinations too
  • Loading branch information
lmossman authored Oct 11, 2022
1 parent ae30773 commit ec54968
Show file tree
Hide file tree
Showing 7 changed files with 28 additions and 6 deletions.
5 changes: 5 additions & 0 deletions airbyte-api/src/main/openapi/config.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -2731,11 +2731,14 @@ components:
required:
- sourceDefinitionId
- connectionConfiguration
- workspaceId
properties:
sourceDefinitionId:
$ref: "#/components/schemas/SourceDefinitionId"
connectionConfiguration:
$ref: "#/components/schemas/SourceConfiguration"
workspaceId:
$ref: "#/components/schemas/WorkspaceId"
SourceCreate:
type: object
required:
Expand Down Expand Up @@ -3027,6 +3030,8 @@ components:
$ref: "#/components/schemas/DestinationDefinitionId"
connectionConfiguration:
$ref: "#/components/schemas/DestinationConfiguration"
workspaceId:
$ref: "#/components/schemas/WorkspaceId"
DestinationCreate:
type: object
required:
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -146,7 +146,8 @@ public CheckConnectionRead checkSourceConnectionFromSourceCreate(final SourceCor
// technically declared as required.
final SourceConnection source = new SourceConnection()
.withSourceDefinitionId(sourceConfig.getSourceDefinitionId())
.withConfiguration(partialConfig);
.withConfiguration(partialConfig)
.withWorkspaceId(sourceConfig.getWorkspaceId());

final String imageName = DockerUtils.getTaggedImageName(sourceDef.getDockerRepository(), sourceDef.getDockerImageTag());
return reportConnectionStatus(synchronousSchedulerClient.createSourceCheckConnectionJob(source, imageName));
Expand Down Expand Up @@ -186,7 +187,8 @@ public CheckConnectionRead checkDestinationConnectionFromDestinationCreate(final
// technically declared as required.
final DestinationConnection destination = new DestinationConnection()
.withDestinationDefinitionId(destinationConfig.getDestinationDefinitionId())
.withConfiguration(partialConfig);
.withConfiguration(partialConfig)
.withWorkspaceId(destinationConfig.getWorkspaceId());

final String imageName = DockerUtils.getTaggedImageName(destDef.getDockerRepository(), destDef.getDockerImageTag());
return reportConnectionStatus(synchronousSchedulerClient.createDestinationCheckConnectionJob(destination, imageName));
Expand Down Expand Up @@ -250,7 +252,8 @@ public SourceDiscoverSchemaRead discoverSchemaForSourceFromSourceCreate(final So
// technically declared as required.
final SourceConnection source = new SourceConnection()
.withSourceDefinitionId(sourceCreate.getSourceDefinitionId())
.withConfiguration(partialConfig);
.withConfiguration(partialConfig)
.withWorkspaceId(sourceCreate.getWorkspaceId());
final SynchronousResponse<UUID> response = synchronousSchedulerClient.createDiscoverSchemaJob(source, imageName, sourceDef.getDockerImageTag());
return retrieveDiscoveredSchema(response);
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -189,7 +189,8 @@ void testCheckSourceConnectionFromSourceCreate() throws JsonValidationException,

final SourceCoreConfig sourceCoreConfig = new SourceCoreConfig()
.sourceDefinitionId(source.getSourceDefinitionId())
.connectionConfiguration(source.getConfiguration());
.connectionConfiguration(source.getConfiguration())
.workspaceId(source.getWorkspaceId());

when(configRepository.getStandardSourceDefinition(source.getSourceDefinitionId()))
.thenReturn(new StandardSourceDefinition()
Expand Down Expand Up @@ -505,7 +506,8 @@ void testDiscoverSchemaForSourceFromSourceCreate() throws JsonValidationExceptio

final SourceCoreConfig sourceCoreConfig = new SourceCoreConfig()
.sourceDefinitionId(source.getSourceDefinitionId())
.connectionConfiguration(source.getConfiguration());
.connectionConfiguration(source.getConfiguration())
.workspaceId(source.getWorkspaceId());
final ActorCatalog actorCatalog = new ActorCatalog()
.withCatalog(Jsons.jsonNode(airbyteCatalog))
.withCatalogHash("")
Expand Down Expand Up @@ -538,7 +540,8 @@ void testDiscoverSchemaForSourceFromSourceCreateFailed() throws JsonValidationEx

final SourceCoreConfig sourceCoreConfig = new SourceCoreConfig()
.sourceDefinitionId(source.getSourceDefinitionId())
.connectionConfiguration(source.getConfiguration());
.connectionConfiguration(source.getConfiguration())
.workspaceId(source.getWorkspaceId());

when(configRepository.getStandardSourceDefinition(source.getSourceDefinitionId()))
.thenReturn(new StandardSourceDefinition()
Expand Down
1 change: 1 addition & 0 deletions airbyte-webapp/src/core/domain/connector/SourceService.ts
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,7 @@ export class SourceService extends AirbyteRequestService {
params: {
sourceId?: string;
connectionConfiguration?: ConnectionConfiguration;
workspaceId?: string;
},
requestParams?: RequestInit
) {
Expand Down
5 changes: 5 additions & 0 deletions airbyte-webapp/src/hooks/services/useConnector.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -101,6 +101,7 @@ export type CheckConnectorParams = { signal: AbortSignal } & (
| {
selectedConnectorDefinitionId: string;
connectionConfiguration: ConnectionConfiguration;
workspaceId: string;
}
);

Expand All @@ -119,6 +120,10 @@ export const useCheckConnector = (formType: "source" | "destination") => {
payload.name = params.name;
}

if ("workspaceId" in params) {
payload.workspaceId = params.workspaceId;
}

if (formType === "destination") {
if ("selectedConnectorId" in params) {
payload.destinationId = params.selectedConnectorId;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@ import { useRef } from "react";
import { ConnectorHelper } from "core/domain/connector";
import { ConnectorT } from "core/domain/connector/types";
import { CheckConnectorParams, useCheckConnector } from "hooks/services/useConnector";
import { useCurrentWorkspace } from "services/workspaces/WorkspacesService";
import { ServiceFormValues } from "views/Connector/ServiceForm";

import { CheckConnectionRead } from "../../../core/request/AirbyteClient";
Expand All @@ -25,6 +26,7 @@ export const useTestConnector = (
reset: () => void;
} => {
const { mutateAsync, isLoading, error, isSuccess, reset } = useCheckConnector(props.formType);
const workspace = useCurrentWorkspace();

const abortControllerRef = useRef<AbortController | null>(null);

Expand Down Expand Up @@ -66,6 +68,7 @@ export const useTestConnector = (
connectionConfiguration: values.connectionConfiguration,
signal: controller.signal,
selectedConnectorDefinitionId: values.serviceType,
workspaceId: workspace.workspaceId,
};
}

Expand Down
2 changes: 2 additions & 0 deletions docs/reference/api/generated-api-html/index.html
Original file line number Diff line number Diff line change
Expand Up @@ -10356,6 +10356,7 @@ <h3><a name="DestinationCoreConfig"><code>DestinationCoreConfig</code> - </a> <a
<div class="field-items">
<div class="param">destinationDefinitionId </div><div class="param-desc"><span class="param-type"><a href="#UUID">UUID</a></span> format: uuid</div>
<div class="param">connectionConfiguration </div><div class="param-desc"><span class="param-type"><a href="#DestinationConfiguration">DestinationConfiguration</a></span> </div>
<div class="param">workspaceId </div><div class="param-desc"><span class="param-type"><a href="#UUID">UUID</a></span> format: uuid</div>
</div> <!-- field-items -->
</div>
<div class="model">
Expand Down Expand Up @@ -11017,6 +11018,7 @@ <h3><a name="SourceCoreConfig"><code>SourceCoreConfig</code> - </a> <a class="up
<div class="field-items">
<div class="param">sourceDefinitionId </div><div class="param-desc"><span class="param-type"><a href="#UUID">UUID</a></span> format: uuid</div>
<div class="param">connectionConfiguration </div><div class="param-desc"><span class="param-type"><a href="#SourceConfiguration">SourceConfiguration</a></span> </div>
<div class="param">workspaceId </div><div class="param-desc"><span class="param-type"><a href="#UUID">UUID</a></span> format: uuid</div>
</div> <!-- field-items -->
</div>
<div class="model">
Expand Down

0 comments on commit ec54968

Please sign in to comment.