Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
44 commits
Select commit Hold shift + click to select a range
e3916a9
feat: add CountDigits function to calculate precision and scale of nu…
flarco Aug 26, 2025
66994ec
feat: add XML to PostgreSQL import test and XML decoder implementation
flarco Aug 26, 2025
41bd49b
feat: handle nil payloads in NextFunc and parseRecords methods
flarco Aug 28, 2025
cd00a39
feat: add expression validation in Evaluator with comprehensive test …
flarco Aug 29, 2025
58aa49c
feat: enhance MCP tool documentation with pipeline action details
flarco Aug 29, 2025
d990549
feat: add comprehensive Sling + Python guide for LLMs with usage exam…
flarco Aug 29, 2025
7904b0e
feat: remove unused transformEG field from StreamProcessor struct
flarco Aug 29, 2025
1603716
feat: enhance decimal handling in StreamProcessor and Dataset with ne…
flarco Aug 29, 2025
00931ed
feat: streamline decimal handling in StreamProcessor and related comp…
flarco Aug 29, 2025
7aa79bb
feat: set default copy method to arrow_http in DuckLakeConn initializ…
flarco Aug 29, 2025
75589d3
feat: update column type handling in StreamProcessor and DataStream f…
flarco Aug 29, 2025
2889020
feat: append path to URL template in Connection setURL method
flarco Aug 30, 2025
67b2018
feat: add ArrowFlight connection basic support
flarco Aug 30, 2025
c7d55af
feat: add replication store management to APIConnection and task exec…
flarco Aug 30, 2025
a9ff424
feat: impose a maximum limit of 1000 on testing endpoint records
flarco Aug 30, 2025
d96f118
feat: enhance base_url handling and adjust execution parameters in sl…
flarco Aug 30, 2025
b48be01
feat: add test case for Sling Platform and create replication configu…
flarco Aug 30, 2025
3833fde
feat: escape password in NormalizeURI to handle special characters
flarco Aug 30, 2025
56f517b
feat: enhance error messages in List methods to include path details
flarco Aug 30, 2025
05d0511
feat: rename upsert methods to incremental for clarity and consistency
flarco Aug 30, 2025
a074e8c
feat: rename GenerateIncrementalSQL methods to GenerateMergeSQL for c…
flarco Aug 30, 2025
86e922c
feat: add MergeStrategy type and integrate into TargetOptions for enh…
flarco Aug 30, 2025
f16fdd4
feat: rename Upsert methods to Merge for clarity and consistency
flarco Aug 30, 2025
3225d2c
feat: move Merge and SwapTable methods to a new location for improved…
flarco Aug 30, 2025
612bc51
feat: refactor merge logic to use MergeConfig for improved clarity an…
flarco Aug 31, 2025
8ceb5bd
feat: add deep copy functionality to state management and implement b…
flarco Aug 31, 2025
f1f2c31
feat: add new API test configuration for Sling Platform and update te…
flarco Aug 31, 2025
ff8d942
feat: update colorization methods and add new API test configurations…
flarco Sep 1, 2025
a507f48
feat: add handling for negative sign in TruncateDecimalString function
flarco Sep 1, 2025
12ad8d5
feat: update expected output for negative number in TruncateDecimalSt…
flarco Sep 1, 2025
8805fc1
feat: enhance AzureTableConn to extract table name from SAS token and…
flarco Sep 1, 2025
42d0f41
feat: update flarco/g dependency to v0.1.158
flarco Sep 1, 2025
9a2d066
feat: add option to control writing of partition columns in DuckDB
flarco Sep 1, 2025
6cd1726
feat: update DuckDB extension name to include source clarification
flarco Sep 1, 2025
eff9e91
feat: add tests for AWS S3, Azure Storage, and Google Storage file sp…
flarco Sep 2, 2025
91656ca
feat: add delete file option in StreamConfig and update task executio…
flarco Sep 2, 2025
97f5d5b
feat: add Prometheus support for dynamic column detection and handle …
flarco Sep 2, 2025
2cd0aa7
feat: enhance type inference logic to handle decimal types more accur…
flarco Sep 3, 2025
f7253ea
feat: add aggregate state to Endpoint and remove from SingleRequest
flarco Sep 3, 2025
833dfae
feat: update event endpoint pagination to use ending_before and adjus…
flarco Sep 3, 2025
4b3cc84
feat: update object and location paths in parquet file splitting conf…
flarco Sep 3, 2025
3d38cf1
feat: clarify pagination logic for event retrieval in Stripe API
flarco Sep 3, 2025
1f93b19
feat: remove MAX_DECIMALS property setting in OracleConn initialization
flarco Sep 3, 2025
f4727f1
feat: improve decimal handling in CastVal by using string replacement…
flarco Sep 3, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
27 changes: 12 additions & 15 deletions api/specs/sling_platform.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ name: sling-platform

defaults:
state:
base_url: https://api.slingdata.io
base_url: '{ coalesce(secrets.base_url, "https://api.slingdata.io") }'

request:
headers:
Expand All @@ -22,9 +22,9 @@ endpoints:
primary_key: [name]

processors:
- expression: date_format(now(), "%Y")
- expression: int_parse(date_format(now(), "%Y"))
output: record.loaded_year
- expression: log(record)
# - expression: log(record)

executions:

Expand All @@ -42,7 +42,7 @@ endpoints:
executions_many:

state:
start_date: '{ coalesce(env.START_DATE, state.max_start_time, "2025-01-01") }'
start_date: '{ coalesce(env.START_DATE, sync.max_start_time, "2025-01-01T00:00:00.000000Z") }'
end_date: '{ coalesce(env.END_DATE, date_format(now(), "%Y-%m-%dT%H:%M:%S.%fZ")) }'

# external sync on start/end of replication. null on first run.
Expand All @@ -52,7 +52,8 @@ endpoints:
url: '{state.base_url}/execution/list'

parameters:
limit: 500
limit: 100
order: asc
filters: >
{"period":["{state.start_date}","{state.end_date}"]}

Expand All @@ -67,7 +68,6 @@ endpoints:
start_time: start_time
}
primary_key: [exec_id]
# limit: 3

processors:
- aggregation: maximum
Expand All @@ -78,14 +78,11 @@ endpoints:
)
output: state.max_start_time

# pagination:
# # stop if condition is met
# stop_condition: >
# length(response.records) == 0 ||
# state.max_start_time == state.start_date
pagination:
# stop if condition is met
stop_condition: length(response.records) == 0

# # set state for next page
# next_state:
# start_date: state.max_start_time
# end_date: date_format(now(), "%Y-%m-%dT%H:%M:%S.%fZ")
# set state for next page
next_state:
start_date: '{state.max_start_time}'

15 changes: 11 additions & 4 deletions api/specs/stripe.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -509,7 +509,7 @@ endpoints:
response:
records:
jmespath: "data[]"
primary_key: ["id"]
primary_key: [ subscription_id, id ]

processors:
- expression: "state.subscription_id"
Expand All @@ -521,7 +521,7 @@ endpoints:
docs: https://docs.stripe.com/api/events

state:
starting_after: '{ sync.last_id }' # will be null on first run
ending_before: '{ sync.last_id }' # will be null on first run
created_gte: '{coalesce(env.CREATED_GTE, date_format(date_add(now(), -30, "day"), "%s"))}'

sync: [ last_id ]
Expand All @@ -530,13 +530,20 @@ endpoints:
url: '{state.base_url}/events'
parameters:
limit: '{state.limit}'
ending_before: '{state.ending_before}'
starting_after: '{state.starting_after}'
# created[gte]: '{state.created_gte}'
# types: customer.subscription.created,customer.subscription.updated,customer.subscription.deleted

# Strange pagination logic:
# on first run (no `sync.last_id` value), the most recent event is first,
# so we have to use `starting_after` to paginate through all the records.
# on incremental run (with a `sync.last_id` value), in order to get the
# records created after the last known event ID, we have to use `ending_before`
pagination:
next_state:
starting_after: '{response.records[-1].id}'
starting_after: '{ is_null(sync.last_id) ? response.records[length(response.records)-1].id : nil }'
ending_before: '{ !is_null(sync.last_id) ? response.records[0].id : nil }'
stop_condition: "response.json.has_more == false || length(response.records) < 1"

response:
Expand All @@ -547,4 +554,4 @@ endpoints:
processors:
- expression: "record.id"
output: "state.last_id"
aggregation: "last"
aggregation: "first"
Loading
Loading