Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

estuary-cdk and new connectors #1293

Merged
merged 14 commits into from
Mar 4, 2024
Merged

estuary-cdk and new connectors #1293

merged 14 commits into from
Mar 4, 2024

Commits on Mar 2, 2024

  1. estuary-cdk: introduce new connector development kit

    The Estuary CDK differs from the earlier flow-sdk in fundamental ways:
    
    * It leans heavily into Pydantic V2 (with a polyfill for V1),
      which is used for validation and schema generation,
      married with Flow's schema inference capabilities.
    
    * It has a framework -> connector -> library structure.
      The framework is maximally unopinionated as to how a connector is
      built. But, the CDK offers library routines (the `common` module)
      which encapsulates the common patterns for fetch snapshot or
      incremental resources.
    
    * It's async at it's core.
      All work proceeds concurrently across all bindings.
    jgraettinger committed Mar 2, 2024
    Configuration menu
    Copy the full SHA
    df9eb5e View commit details
    Browse the repository at this point in the history
  2. source-hubspot-native: add real-time HubSpot connector

    Still missing a bunch of entities, but functional.
    jgraettinger committed Mar 2, 2024
    Configuration menu
    Copy the full SHA
    2b9d347 View commit details
    Browse the repository at this point in the history
  3. Configuration menu
    Copy the full SHA
    c79039b View commit details
    Browse the repository at this point in the history
  4. Configuration menu
    Copy the full SHA
    3d416c9 View commit details
    Browse the repository at this point in the history
  5. Configuration menu
    Copy the full SHA
    7faa8bc View commit details
    Browse the repository at this point in the history
  6. estuary-cdk: update FetchChangesFn to be an AsyncGenerator of either …

    …wocuments or a LogCursor
    
    This avoids implementations from having to know the maximum LogCursor
    until they're done reading documents, and avoids nested async
    generators.
    
    Also add a BasicAuth credential type.
    jgraettinger committed Mar 2, 2024
    Configuration menu
    Copy the full SHA
    7241cde View commit details
    Browse the repository at this point in the history
  7. estuary-cdk: refactor HTTPSesion to use request_stream

    request_stream() is an AsyncGenerator over arbitrary stream chunks.
    Then, request() and a new request_lines() are implemented in terms of
    request_stream().
    
    This allows callers to efficiently process unbounded responses.
    jgraettinger committed Mar 2, 2024
    Configuration menu
    Copy the full SHA
    fd41925 View commit details
    Browse the repository at this point in the history
  8. estuary-cdk: FetchChangesFn contract now allows for incremental strea…

    …ming
    
    Rework the contract to allow implementations to yield checkpoints at
    times of their choosing. This allows for more ergonomic handling of
    long-lived push streams of documents.
    jgraettinger committed Mar 2, 2024
    Configuration menu
    Copy the full SHA
    b3aac11 View commit details
    Browse the repository at this point in the history
  9. introduce new actions workflow for python connectors

    Begin to factor out common setup steps into reuseable composite actions.
    
    Add a common estuary-cdk Dockerfile
    jgraettinger committed Mar 2, 2024
    Configuration menu
    Copy the full SHA
    617457b View commit details
    Browse the repository at this point in the history
  10. Configuration menu
    Copy the full SHA
    249844e View commit details
    Browse the repository at this point in the history
  11. Configuration menu
    Copy the full SHA
    00c1431 View commit details
    Browse the repository at this point in the history
  12. estuary-cdk: don't schematize /_meta/uuid

    The runtime currently uses a non-UUID placeholder internally, which causes spurious schema violations
    jgraettinger committed Mar 2, 2024
    Configuration menu
    Copy the full SHA
    f4f913e View commit details
    Browse the repository at this point in the history
  13. estuary-cdk: remove global Logger and adopt ordering convention

    Establish a convention that `log: Logger` is the first parameter.
    We're going to be threading these through everywhere -- which is
    desireable, because it gives us a tightly-scoped structured log context
    that tells us as much as possible about the surrounding task -- so let's
    standardize how it should be passed so we don't have to think hard about
    it.
    
    Also refactor `http` module to clarify APIs which are stable, vs
    portions that are very likely to be refactored.
    
    A few other code-review cleanups as well.
    jgraettinger committed Mar 2, 2024
    Configuration menu
    Copy the full SHA
    e362484 View commit details
    Browse the repository at this point in the history
  14. estuary-cdk: remove namespace from common.ResourceConfig

    We don't need it yet, so let's not have it.
    jgraettinger committed Mar 2, 2024
    Configuration menu
    Copy the full SHA
    e0c7983 View commit details
    Browse the repository at this point in the history