Skip to content

feat: add deleted stream#295

Merged
tobiascadee merged 3 commits intomainfrom
feat/deleted-stream
Feb 24, 2026
Merged

feat: add deleted stream#295
tobiascadee merged 3 commits intomainfrom
feat/deleted-stream

Conversation

@tobiascadee
Copy link
Contributor

Summary

  • Introduces ExactBulkStream and ExactSyncStream as specialised base classes for bulk and sync Exact API endpoints
  • Adds a new DeletedStream (sync/Deleted) that tracks deleted records with a Timestamp replication key
  • Adds deleted_schema with fields: ID, Timestamp, Division, DeletedBy, DeletedDate, EntityKey, EntityType
  • Migrates TransactionLinesStream and GLAccountsStream to ExactBulkStream, and GLClassificationsStream to ExactSyncStream
  • Simplifies schema imports in streams.py to use the schemas module directly

Test plan

  • Run the tap with the deleted stream selected and verify records are returned from sync/Deleted
  • Verify incremental replication works correctly using the Timestamp replication key
  • Confirm existing streams (transaction_lines, gl_accounts, gl_classifications) still function correctly after the base class change

🤖 Generated with Claude Code

…m` base classes

- Add `ExactBulkStream` and `ExactSyncStream` as specialised base classes
  for bulk and sync endpoints respectively
- Add `deleted_schema` and `DeletedStream` to expose the Exact sync/Deleted endpoint
- Switch `TransactionLinesStream` and `GLAccountsStream` to `ExactBulkStream`
- Switch `GLClassificationsStream` to `ExactSyncStream`
- Simplify schema imports in streams.py to use the `schemas` module directly

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
@tobiascadee tobiascadee requested a review from a team as a code owner February 24, 2026 11:39
Copilot AI review requested due to automatic review settings February 24, 2026 11:39
Copy link

Copilot AI left a comment

Choose a reason for hiding this comment

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

Pull request overview

Adds support for Exact’s /sync/Deleted endpoint by introducing specialized stream base classes for bulk vs. sync endpoints, and registering a new deleted stream in the tap.

Changes:

  • Introduce ExactBulkStream (larger page size) and ExactSyncStream (Timestamp-based filtering for /sync/* endpoints).
  • Add DeletedStream (/sync/Deleted) with Timestamp replication key and a new deleted_schema.
  • Migrate existing streams to the appropriate new base classes and simplify schema imports.

Reviewed changes

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

Show a summary per file
File Description
tap_exact/tap.py Registers the new DeletedStream in discover_streams().
tap_exact/streams.py Switches streams to ExactBulkStream/ExactSyncStream, adds DeletedStream, and consolidates schema imports.
tap_exact/schemas.py Adds deleted_schema defining fields returned by /sync/Deleted.
tap_exact/client.py Adds ExactBulkStream and ExactSyncStream stream base classes and sync-specific URL params.
meltano.yml Updates the sample/project selection to only run deleted by default.

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

@tobiascadee tobiascadee merged commit 2470ed5 into main Feb 24, 2026
4 checks passed
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.

2 participants