Skip to content

[MCC-1498582] - Create layered design#16

Merged
ibaig-mdsol merged 2 commits into
mainfrom
features/framework-2
May 6, 2026
Merged

[MCC-1498582] - Create layered design#16
ibaig-mdsol merged 2 commits into
mainfrom
features/framework-2

Conversation

@slingampalli-mdsol

@slingampalli-mdsol slingampalli-mdsol commented May 6, 2026

Copy link
Copy Markdown
Contributor

[MCC-1498582] - Create layered design

Changes

  • Added a transport layer contract (DTOs + abstract Transport) and an Arrow Flight transport implementation with exception translation.
  • Added a service layer (DataConnectService + default implementation) to map transport resources into domain models and translate transport errors into public exceptions.
  • Updated the public client/models/exceptions surface to align with the new layered architecture.

Copilot AI review requested due to automatic review settings May 6, 2026 13:27

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR restructures the SDK into clearer layers by introducing a technology-agnostic transport interface (with an Arrow Flight implementation), a service layer that performs domain mapping and error translation, and a thinner DataConnectClient façade as the composition root.

Changes:

  • Added a transport layer contract (DTOs + abstract Transport) and an Arrow Flight transport implementation with exception translation.
  • Added a service layer (DataConnectService + default implementation) to map transport resources into domain models and translate transport errors into public exceptions.
  • Updated the public client/models/exceptions surface to align with the new layered architecture.

Reviewed changes

Copilot reviewed 14 out of 14 changed files in this pull request and generated 5 comments.

Show a summary per file
File Description
dataconnect/transport/models.py Adds transport-layer DTOs (ResourceQuery, ResourceInfo, DataRef).
dataconnect/transport/errors.py Introduces internal transport-only exception hierarchy.
dataconnect/transport/base.py Defines the technology-agnostic Transport interface.
dataconnect/transport/arrow_flight/transport.py Implements Transport using pyarrow.flight and translates Flight errors to transport errors.
dataconnect/transport/arrow_flight/init.py Exposes ArrowFlightTransport.
dataconnect/transport/init.py Public exports for the transport layer (excluding internal transport errors).
dataconnect/service/mappers.py Adds mapper(s) from transport ResourceInfo to domain models.
dataconnect/service/default.py Adds default service implementation with error translation + study retrieval.
dataconnect/service/base.py Defines the service interface (DataConnectService).
dataconnect/service/init.py Re-exports service symbols for convenience.
dataconnect/models.py Updates domain models to UUID-based Study/StudyEnvironment.
dataconnect/exceptions.py Expands and documents public exception hierarchy; adds ServerError.status_code.
dataconnect/client.py Refactors client into a thin façade over the service; adds connect() composition root.
dataconnect/init.py Updates package-level exports to match new public API surface.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment thread dataconnect/client.py Outdated
Comment thread dataconnect/client.py
Comment thread dataconnect/service/mappers.py
Comment thread dataconnect/service/default.py
Comment thread dataconnect/transport/arrow_flight/transport.py
@slingampalli-mdsol slingampalli-mdsol changed the title [MCC-1498582] - Boilerplate Code Fixes [MCC-1498582] - Create layered architecture May 6, 2026
@slingampalli-mdsol slingampalli-mdsol changed the title [MCC-1498582] - Create layered architecture [MCC-1498582] - Create layered design May 6, 2026
@ibaig-mdsol
ibaig-mdsol merged commit f9ea4d2 into main May 6, 2026
3 checks passed
@ibaig-mdsol
ibaig-mdsol deleted the features/framework-2 branch May 6, 2026 14:51
@slingampalli-mdsol
slingampalli-mdsol restored the features/framework-2 branch May 6, 2026 20:45
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants