Skip to content

Conversation

@fguery
Copy link
Contributor

@fguery fguery commented Nov 24, 2025

@fguery fguery requested a review from a team as a code owner November 24, 2025 17:49
@coderabbitai
Copy link
Contributor

coderabbitai bot commented Nov 24, 2025

Walkthrough

PageSize was removed from the core Config and defaults. Plugins now expose a PAGE_SIZE constant passed to registry.RegisterPlugin; registry stores per-plugin pageSize and exposes GetPageSize(provider). Workflows call registry.GetPageSize(...) at runtime and pass the value into plugin fetch calls. Client models/docs mark PageSize deprecated.

Changes

Cohort / File(s) Summary
Registry infra & tests
internal/connectors/plugins/registry/plugins.go, internal/connectors/plugins/registry/plugins_test.go
Added pageSize uint64 to PluginInformation; updated RegisterPlugin(..., pageSize uint64); added GetPageSize(provider string) (uint64, error); tests updated to pass pageSize (e.g., 25).
Registry defaults
internal/connectors/plugins/registry/configs.go
Removed default "pageSize" entry from registry default parameters.
Config model (core)
internal/models/config.go, internal/models/config_test.go
Removed PageSize field and defaultPageSize; updated MarshalJSON, UnmarshalJSON, and DefaultConfig() to exclude PageSize; tests adjusted to remove PageSize assertions.
Plugin PAGE_SIZE constants
internal/connectors/plugins/public/*/config.go
(e.g., .../adyen/config.go, .../atlar/config.go, .../currencycloud/config.go, .../dummypay/config.go, .../generic/config.go, .../increase/config.go, .../mangopay/config.go, .../modulr/config.go, .../moneycorp/config.go, .../plaid/config.go, .../powens/config.go, .../qonto/config.go, .../stripe/config.go, .../tink/config.go, .../wise/config.go, .../column/config.go, .../bankingcircle/config.go)
Added exported PAGE_SIZE constants (provider-specific values such as 25 or 100).
Plugin registration updates
internal/connectors/plugins/public/*/plugin.go
(same list as above)
Updated registry.RegisterPlugin() calls in init() to pass the plugin PAGE_SIZE as the final argument.
Workflow runtime retrieval
internal/connectors/engine/workflow/fetch_*.go
(fetch_accounts.go, fetch_balances.go, fetch_external_accounts.go, fetch_others.go, fetch_payments.go)
Replaced uses of Config.PageSize with runtime registry.GetPageSize(ConnectorID.Provider); added registry import and error handling; pass int(pageSize) to plugin fetch calls.
Workflow & engine tests
internal/connectors/engine/workflow/main_test.go, internal/connectors/engine/engine_test.go, internal/connectors/config_test.go
Updated plugin registration/test setup to include pageSize argument; removed PageSize from test Configs and assertions.
Client model deprecation annotations
pkg/client/models/components/v3*.go (multiple files)
Added deprecation comments above PageSize fields in client model structs; minor formatting/alignment tweaks.
Client docs (API schemas)
pkg/client/docs/models/components/v3*.md (multiple files)
Marked PageSize as deprecated in documentation tables (strikethrough + deprecation note).
Schema tools
tools/compile-configs/main.go, tools/compile-configs/definitions.go
Marked compiled pageSize property Deprecated: true and added x-speakeasy-deprecation-message; added Deprecated and XSpeakeasyDeprecationMessage fields to Property struct.
E2E & tests
test/e2e/api_connectors_test.go, test/e2e/api_accounts_test.go
Removed PageSize references from connector tests and API payload assertions; added 10s timeouts to two Eventually checks in accounts tests.

Sequence Diagram(s)

sequenceDiagram
    actor Caller
    participant Workflow as Workflow
    participant Registry as Registry
    participant Plugin as Plugin

    Caller->>Workflow: ExecuteFetch(connectorID, config)
    rect rgb(235,245,255)
    Note over Workflow,Registry: Runtime pageSize retrieval
    Workflow->>Registry: GetPageSize(connectorID.Provider)
    Registry-->>Workflow: pageSize (uint64)
    end
    Workflow->>Plugin: PluginFetchNext(..., pageSize:int, ...)
    Plugin-->>Workflow: results
    Workflow-->>Caller: data
Loading

Estimated code review effort

🎯 3 (Moderate) | ⏱️ ~25 minutes

  • Review focus:
    • Verify correct PAGE_SIZE values for each plugin constant.
    • Ensure error propagation and handling for registry.GetPageSize() in all workflow files.
    • Confirm tests updated to reflect removal of PageSize and registry-driven behavior.
    • Validate tooling/schema changes add deprecation metadata correctly.

Poem

🐰 I hopped through code with a twitch and a squeak,
Plugins now hold the size I seek.
The registry whispers the count at runtime,
Workflows ask once, then fetch in time.
Deprecated notes flutter — a tidy tweak.

Pre-merge checks and finishing touches

❌ Failed checks (1 warning)
Check name Status Explanation Resolution
Docstring Coverage ⚠️ Warning Docstring coverage is 28.21% which is insufficient. The required threshold is 80.00%. You can run @coderabbitai generate docstrings to improve docstring coverage.
✅ Passed checks (2 passed)
Check name Status Explanation
Title check ✅ Passed The PR title accurately describes the main objective: removing user-configurable pagination and hard-coding it per connector instead.
Description check ✅ Passed The PR description provides a link to the relevant Jira issue (EN-420) which documents the change, making it adequate for understanding the context.
✨ Finishing touches
  • 📝 Generate docstrings
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Post copyable unit tests in a comment
  • Commit unit tests in branch EN-420_change_default_pagination

Warning

Review ran into problems

🔥 Problems

Errors were encountered while retrieving linked issues.

Errors (1)
  • EN-420: Authentication required, not authenticated - You need to authenticate to access this operation.

Comment @coderabbitai help to get the list of available commands and usage tips.

Copy link
Contributor

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

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

Actionable comments posted: 1

🧹 Nitpick comments (1)
internal/connectors/plugins/public/column/config.go (1)

18-19: Consider aligning PAGE_SIZE with Column API's recommended pagination practices.

The page size of 25 is within Column API's allowed range (1-100), but deviates from the recommended default of 10. Either adjust to the recommended value or document the rationale for using 25 instead.

📜 Review details

Configuration used: CodeRabbit UI

Review profile: CHILL

Plan: Pro

Disabled knowledge base sources:

  • Linear integration is disabled by default for public repositories

You can enable these sources in your CodeRabbit configuration.

📥 Commits

Reviewing files that changed from the base of the PR and between 8398ccc and fd122f1.

⛔ Files ignored due to path filters (3)
  • openapi.yaml is excluded by !**/*.yaml
  • openapi/v3/v3-connectors-config.yaml is excluded by !**/*.yaml
  • pkg/client/.speakeasy/gen.lock is excluded by !**/*.lock, !**/*.lock
📒 Files selected for processing (84)
  • docs/api/README.md (0 hunks)
  • internal/connectors/config_test.go (0 hunks)
  • internal/connectors/engine/engine_test.go (1 hunks)
  • internal/connectors/engine/workflow/fetch_accounts.go (2 hunks)
  • internal/connectors/engine/workflow/fetch_balances.go (2 hunks)
  • internal/connectors/engine/workflow/fetch_external_accounts.go (2 hunks)
  • internal/connectors/engine/workflow/fetch_others.go (3 hunks)
  • internal/connectors/engine/workflow/fetch_payments.go (2 hunks)
  • internal/connectors/engine/workflow/main_test.go (1 hunks)
  • internal/connectors/plugins/public/adyen/config.go (1 hunks)
  • internal/connectors/plugins/public/adyen/plugin.go (1 hunks)
  • internal/connectors/plugins/public/atlar/config.go (1 hunks)
  • internal/connectors/plugins/public/atlar/plugin.go (1 hunks)
  • internal/connectors/plugins/public/bankingcircle/config.go (1 hunks)
  • internal/connectors/plugins/public/bankingcircle/plugin.go (1 hunks)
  • internal/connectors/plugins/public/column/config.go (1 hunks)
  • internal/connectors/plugins/public/column/plugin.go (1 hunks)
  • internal/connectors/plugins/public/currencycloud/config.go (1 hunks)
  • internal/connectors/plugins/public/currencycloud/plugin.go (1 hunks)
  • internal/connectors/plugins/public/dummypay/config.go (1 hunks)
  • internal/connectors/plugins/public/dummypay/plugin.go (1 hunks)
  • internal/connectors/plugins/public/generic/config.go (1 hunks)
  • internal/connectors/plugins/public/generic/plugin.go (1 hunks)
  • internal/connectors/plugins/public/increase/config.go (1 hunks)
  • internal/connectors/plugins/public/increase/plugin.go (1 hunks)
  • internal/connectors/plugins/public/mangopay/config.go (1 hunks)
  • internal/connectors/plugins/public/mangopay/plugin.go (1 hunks)
  • internal/connectors/plugins/public/modulr/config.go (1 hunks)
  • internal/connectors/plugins/public/modulr/plugin.go (1 hunks)
  • internal/connectors/plugins/public/moneycorp/config.go (1 hunks)
  • internal/connectors/plugins/public/moneycorp/plugin.go (1 hunks)
  • internal/connectors/plugins/public/plaid/config.go (1 hunks)
  • internal/connectors/plugins/public/plaid/plugin.go (1 hunks)
  • internal/connectors/plugins/public/powens/config.go (1 hunks)
  • internal/connectors/plugins/public/powens/plugin.go (1 hunks)
  • internal/connectors/plugins/public/qonto/config.go (1 hunks)
  • internal/connectors/plugins/public/qonto/plugin.go (1 hunks)
  • internal/connectors/plugins/public/stripe/config.go (1 hunks)
  • internal/connectors/plugins/public/stripe/plugin.go (1 hunks)
  • internal/connectors/plugins/public/tink/config.go (1 hunks)
  • internal/connectors/plugins/public/tink/plugin.go (1 hunks)
  • internal/connectors/plugins/public/wise/config.go (1 hunks)
  • internal/connectors/plugins/public/wise/plugin.go (1 hunks)
  • internal/connectors/plugins/registry/configs.go (0 hunks)
  • internal/connectors/plugins/registry/plugins.go (3 hunks)
  • internal/connectors/plugins/registry/plugins_test.go (1 hunks)
  • internal/models/config.go (0 hunks)
  • internal/models/config_test.go (4 hunks)
  • pkg/client/docs/models/components/v3adyenconfig.md (0 hunks)
  • pkg/client/docs/models/components/v3atlarconfig.md (0 hunks)
  • pkg/client/docs/models/components/v3bankingcircleconfig.md (0 hunks)
  • pkg/client/docs/models/components/v3columnconfig.md (0 hunks)
  • pkg/client/docs/models/components/v3currencycloudconfig.md (0 hunks)
  • pkg/client/docs/models/components/v3dummypayconfig.md (0 hunks)
  • pkg/client/docs/models/components/v3genericconfig.md (0 hunks)
  • pkg/client/docs/models/components/v3increaseconfig.md (0 hunks)
  • pkg/client/docs/models/components/v3mangopayconfig.md (0 hunks)
  • pkg/client/docs/models/components/v3modulrconfig.md (0 hunks)
  • pkg/client/docs/models/components/v3moneycorpconfig.md (0 hunks)
  • pkg/client/docs/models/components/v3plaidconfig.md (0 hunks)
  • pkg/client/docs/models/components/v3powensconfig.md (0 hunks)
  • pkg/client/docs/models/components/v3qontoconfig.md (0 hunks)
  • pkg/client/docs/models/components/v3stripeconfig.md (0 hunks)
  • pkg/client/docs/models/components/v3tinkconfig.md (0 hunks)
  • pkg/client/docs/models/components/v3wiseconfig.md (0 hunks)
  • pkg/client/models/components/v3adyenconfig.go (0 hunks)
  • pkg/client/models/components/v3atlarconfig.go (0 hunks)
  • pkg/client/models/components/v3bankingcircleconfig.go (0 hunks)
  • pkg/client/models/components/v3columnconfig.go (0 hunks)
  • pkg/client/models/components/v3currencycloudconfig.go (0 hunks)
  • pkg/client/models/components/v3dummypayconfig.go (0 hunks)
  • pkg/client/models/components/v3genericconfig.go (0 hunks)
  • pkg/client/models/components/v3increaseconfig.go (0 hunks)
  • pkg/client/models/components/v3mangopayconfig.go (0 hunks)
  • pkg/client/models/components/v3modulrconfig.go (0 hunks)
  • pkg/client/models/components/v3moneycorpconfig.go (0 hunks)
  • pkg/client/models/components/v3plaidconfig.go (0 hunks)
  • pkg/client/models/components/v3powensconfig.go (0 hunks)
  • pkg/client/models/components/v3qontoconfig.go (0 hunks)
  • pkg/client/models/components/v3stripeconfig.go (0 hunks)
  • pkg/client/models/components/v3tinkconfig.go (0 hunks)
  • pkg/client/models/components/v3wiseconfig.go (0 hunks)
  • test/e2e/api_connectors_test.go (1 hunks)
  • tools/compile-configs/main.go (0 hunks)
💤 Files with no reviewable changes (39)
  • pkg/client/docs/models/components/v3mangopayconfig.md
  • pkg/client/models/components/v3bankingcircleconfig.go
  • pkg/client/docs/models/components/v3columnconfig.md
  • pkg/client/docs/models/components/v3modulrconfig.md
  • pkg/client/models/components/v3columnconfig.go
  • pkg/client/models/components/v3stripeconfig.go
  • pkg/client/models/components/v3increaseconfig.go
  • pkg/client/models/components/v3currencycloudconfig.go
  • pkg/client/models/components/v3genericconfig.go
  • pkg/client/models/components/v3qontoconfig.go
  • internal/models/config.go
  • tools/compile-configs/main.go
  • pkg/client/models/components/v3plaidconfig.go
  • pkg/client/models/components/v3mangopayconfig.go
  • pkg/client/docs/models/components/v3dummypayconfig.md
  • pkg/client/docs/models/components/v3plaidconfig.md
  • pkg/client/models/components/v3wiseconfig.go
  • internal/connectors/config_test.go
  • pkg/client/docs/models/components/v3moneycorpconfig.md
  • pkg/client/models/components/v3adyenconfig.go
  • pkg/client/docs/models/components/v3tinkconfig.md
  • pkg/client/docs/models/components/v3stripeconfig.md
  • pkg/client/docs/models/components/v3adyenconfig.md
  • pkg/client/models/components/v3dummypayconfig.go
  • pkg/client/models/components/v3tinkconfig.go
  • pkg/client/docs/models/components/v3wiseconfig.md
  • pkg/client/docs/models/components/v3powensconfig.md
  • pkg/client/docs/models/components/v3bankingcircleconfig.md
  • pkg/client/models/components/v3moneycorpconfig.go
  • pkg/client/docs/models/components/v3genericconfig.md
  • pkg/client/models/components/v3modulrconfig.go
  • pkg/client/models/components/v3powensconfig.go
  • pkg/client/docs/models/components/v3qontoconfig.md
  • pkg/client/docs/models/components/v3increaseconfig.md
  • pkg/client/docs/models/components/v3atlarconfig.md
  • pkg/client/docs/models/components/v3currencycloudconfig.md
  • pkg/client/models/components/v3atlarconfig.go
  • docs/api/README.md
  • internal/connectors/plugins/registry/configs.go
🧰 Additional context used
🧠 Learnings (8)
📚 Learning: 2025-05-15T16:35:29.660Z
Learnt from: fguery
Repo: formancehq/payments PR: 427
File: internal/connectors/plugins/public/qonto/balances.go:20-55
Timestamp: 2025-05-15T16:35:29.660Z
Learning: The Qonto connector plugin has unit tests for fetchNextBalances in internal/connectors/plugins/public/qonto/balances_test.go, covering success cases, missing FromPayload, invalid JSON handling, and other error conditions.

Applied to files:

  • internal/connectors/engine/workflow/fetch_balances.go
📚 Learning: 2024-12-12T12:45:27.164Z
Learnt from: laouji
Repo: formancehq/payments PR: 193
File: internal/connectors/plugins/public/dummypay/client/client.go:104-131
Timestamp: 2024-12-12T12:45:27.164Z
Learning: The `Balance` struct in `internal/connectors/plugins/public/dummypay/client/client.go` is only used in tests, so changing `AmountInMinors` from `int64` to `*big.Int` is not necessary.

Applied to files:

  • internal/connectors/engine/workflow/fetch_balances.go
  • internal/connectors/plugins/public/bankingcircle/config.go
  • internal/connectors/plugins/public/qonto/config.go
  • internal/connectors/plugins/public/moneycorp/config.go
  • test/e2e/api_connectors_test.go
  • internal/connectors/plugins/public/moneycorp/plugin.go
  • internal/connectors/plugins/public/currencycloud/config.go
  • internal/connectors/plugins/public/dummypay/config.go
  • internal/connectors/plugins/public/currencycloud/plugin.go
  • internal/connectors/plugins/public/dummypay/plugin.go
📚 Learning: 2025-01-17T09:48:09.578Z
Learnt from: laouji
Repo: formancehq/payments PR: 262
File: internal/connectors/plugins/registry/plugins.go:31-42
Timestamp: 2025-01-17T09:48:09.578Z
Learning: In Go packages that handle plugin registration, when RegisterPlugin is called from init() blocks, it should panic on configuration errors rather than return them, to prevent the program from starting with misconfigured plugins.

Applied to files:

  • internal/connectors/plugins/public/mangopay/plugin.go
  • internal/connectors/plugins/public/stripe/plugin.go
  • internal/connectors/plugins/public/bankingcircle/plugin.go
  • internal/connectors/plugins/public/powens/plugin.go
  • internal/connectors/plugins/public/adyen/plugin.go
  • internal/connectors/engine/workflow/main_test.go
  • internal/connectors/plugins/public/generic/plugin.go
  • internal/connectors/plugins/public/plaid/plugin.go
  • internal/connectors/plugins/registry/plugins_test.go
  • internal/connectors/plugins/public/moneycorp/plugin.go
  • internal/connectors/plugins/public/increase/plugin.go
  • internal/connectors/plugins/public/atlar/plugin.go
  • internal/connectors/plugins/public/tink/plugin.go
  • internal/connectors/plugins/public/column/plugin.go
  • internal/connectors/plugins/public/dummypay/plugin.go
  • internal/connectors/plugins/public/wise/plugin.go
  • internal/connectors/plugins/public/modulr/plugin.go
📚 Learning: 2025-08-08T13:46:21.578Z
Learnt from: paul-nicolas
Repo: formancehq/payments PR: 509
File: internal/connectors/plugins/public/powens/client/transactions.go:77-91
Timestamp: 2025-08-08T13:46:21.578Z
Learning: In formancehq/payments Powens client (file: internal/connectors/plugins/public/powens/client/transactions.go), keep single-layout time parsing for Transaction fields (Date: time.DateOnly, DateTime: time.RFC3339, LastUpdate: time.DateTime); no need for multi-layout fallbacks per maintainer preference (paul-nicolas) in PR #509.

Applied to files:

  • internal/connectors/engine/workflow/fetch_payments.go
📚 Learning: 2025-01-09T09:56:16.746Z
Learnt from: laouji
Repo: formancehq/payments PR: 251
File: internal/connectors/engine/engine.go:327-333
Timestamp: 2025-01-09T09:56:16.746Z
Learning: In the `ConnectorsConfigUpdate` storage method, only the config field is updated for connectors. Other fields like CreatedAt are preserved and not affected by the update operation.

Applied to files:

  • internal/connectors/engine/engine_test.go
📚 Learning: 2025-02-06T13:29:29.038Z
Learnt from: laouji
Repo: formancehq/payments PR: 316
File: internal/api/services/accounts_list_test.go:22-22
Timestamp: 2025-02-06T13:29:29.038Z
Learning: The debug flag in the payments service is primarily used to control the visibility of dummypay in configurations, and this behavior is tested in internal/connectors/plugins/registry/plugins_test.go.

Applied to files:

  • internal/connectors/engine/workflow/main_test.go
📚 Learning: 2025-11-06T15:50:27.524Z
Learnt from: paul-nicolas
Repo: formancehq/payments PR: 580
File: internal/connectors/engine/workflow/send_events.go:69-75
Timestamp: 2025-11-06T15:50:27.524Z
Learning: In the payments codebase, the BankAccount model (internal/models/bank_accounts.go) does not have a ConnectorID field. Bank accounts are global entities not scoped to individual connectors, so when sending bank account events via SendEventsRequest, the ConnectorID field should be nil/omitted.

Applied to files:

  • internal/connectors/engine/workflow/fetch_external_accounts.go
  • test/e2e/api_connectors_test.go
📚 Learning: 2025-02-20T20:04:35.706Z
Learnt from: gitstart-formance
Repo: formancehq/payments PR: 322
File: internal/connectors/plugins/public/increase/accounts.go:61-96
Timestamp: 2025-02-20T20:04:35.706Z
Learning: The Increase connector uses centralized constants from the client package for metadata keys (e.g., client.IncreaseTypeMetadataKey) rather than hardcoded strings.

Applied to files:

  • internal/connectors/plugins/public/increase/config.go
🧬 Code graph analysis (20)
internal/connectors/engine/workflow/fetch_balances.go (3)
internal/connectors/plugins/registry/plugins.go (1)
  • GetPageSize (171-178)
internal/connectors/engine/activities/plugin_fetch_next_balances.go (1)
  • PluginFetchNextBalances (32-47)
internal/connectors/engine/workflow/workflow.go (1)
  • FromPayload (18-21)
internal/connectors/plugins/public/mangopay/plugin.go (8)
internal/connectors/plugins/public/atlar/config.go (2)
  • Config (12-17)
  • PAGE_SIZE (19-19)
internal/connectors/plugins/public/column/config.go (2)
  • Config (12-16)
  • PAGE_SIZE (18-18)
internal/connectors/plugins/public/dummypay/config.go (2)
  • Config (10-14)
  • PAGE_SIZE (16-16)
internal/connectors/plugins/public/mangopay/config.go (2)
  • Config (12-17)
  • PAGE_SIZE (19-19)
internal/connectors/plugins/public/stripe/config.go (2)
  • Config (12-15)
  • PAGE_SIZE (17-17)
internal/connectors/plugins/public/wise/config.go (2)
  • Config (17-23)
  • PAGE_SIZE (25-25)
internal/connectors/plugins/public/powens/config.go (1)
  • PAGE_SIZE (18-18)
internal/connectors/plugins/public/qonto/config.go (1)
  • PAGE_SIZE (20-20)
internal/connectors/engine/workflow/fetch_payments.go (3)
internal/connectors/plugins/registry/plugins.go (1)
  • GetPageSize (171-178)
internal/connectors/engine/activities/plugin_fetch_next_payments.go (1)
  • PluginFetchNextPayments (33-47)
internal/connectors/engine/workflow/workflow.go (1)
  • FromPayload (18-21)
internal/connectors/engine/workflow/fetch_accounts.go (3)
internal/connectors/plugins/registry/plugins.go (1)
  • GetPageSize (171-178)
internal/connectors/engine/activities/plugin_fetch_next_accounts.go (1)
  • PluginFetchNextAccounts (32-47)
internal/connectors/engine/workflow/workflow.go (1)
  • FromPayload (18-21)
internal/connectors/plugins/public/stripe/plugin.go (1)
internal/connectors/plugins/public/stripe/config.go (2)
  • Config (12-15)
  • PAGE_SIZE (17-17)
internal/connectors/plugins/public/bankingcircle/plugin.go (1)
internal/connectors/plugins/public/bankingcircle/config.go (2)
  • Config (12-20)
  • PAGE_SIZE (22-22)
internal/connectors/engine/engine_test.go (10)
internal/models/config.go (1)
  • Config (20-23)
internal/connectors/plugins/public/bankingcircle/config.go (1)
  • Config (12-20)
internal/connectors/plugins/public/column/config.go (1)
  • Config (12-16)
internal/connectors/plugins/public/generic/config.go (1)
  • Config (12-16)
internal/connectors/plugins/public/increase/config.go (1)
  • Config (12-17)
internal/connectors/plugins/public/mangopay/config.go (1)
  • Config (12-17)
internal/connectors/plugins/public/modulr/config.go (1)
  • Config (12-17)
internal/connectors/plugins/public/moneycorp/config.go (1)
  • Config (12-17)
internal/connectors/plugins/public/qonto/config.go (1)
  • Config (12-18)
internal/connectors/plugins/public/wise/config.go (1)
  • Config (17-23)
internal/connectors/engine/workflow/main_test.go (1)
internal/models/capabilities.go (1)
  • Capability (9-9)
internal/connectors/engine/workflow/fetch_others.go (1)
internal/connectors/plugins/registry/plugins.go (1)
  • GetPageSize (171-178)
internal/connectors/plugins/public/generic/plugin.go (2)
internal/connectors/plugins/public/generic/config.go (1)
  • PAGE_SIZE (18-18)
internal/connectors/plugins/public/powens/config.go (1)
  • PAGE_SIZE (18-18)
internal/connectors/plugins/public/plaid/plugin.go (15)
internal/connectors/plugins/public/adyen/config.go (2)
  • Config (11-19)
  • PAGE_SIZE (21-21)
internal/connectors/plugins/public/atlar/config.go (2)
  • Config (12-17)
  • PAGE_SIZE (19-19)
internal/connectors/plugins/public/column/config.go (2)
  • Config (12-16)
  • PAGE_SIZE (18-18)
internal/connectors/plugins/public/dummypay/config.go (2)
  • Config (10-14)
  • PAGE_SIZE (16-16)
internal/connectors/plugins/public/generic/config.go (2)
  • Config (12-16)
  • PAGE_SIZE (18-18)
internal/connectors/plugins/public/increase/config.go (2)
  • Config (12-17)
  • PAGE_SIZE (19-19)
internal/connectors/plugins/public/mangopay/config.go (2)
  • Config (12-17)
  • PAGE_SIZE (19-19)
internal/connectors/plugins/public/modulr/config.go (2)
  • Config (12-17)
  • PAGE_SIZE (19-19)
internal/connectors/plugins/public/moneycorp/config.go (2)
  • Config (12-17)
  • PAGE_SIZE (19-19)
internal/connectors/plugins/public/plaid/config.go (2)
  • Config (63-67)
  • PAGE_SIZE (16-16)
internal/connectors/plugins/public/powens/config.go (2)
  • Config (20-27)
  • PAGE_SIZE (18-18)
internal/connectors/plugins/public/qonto/config.go (2)
  • Config (12-18)
  • PAGE_SIZE (20-20)
internal/connectors/plugins/public/stripe/config.go (2)
  • Config (12-15)
  • PAGE_SIZE (17-17)
internal/connectors/plugins/registry/plugins_test.go (1)
  • Config (22-33)
internal/connectors/plugins/public/tink/config.go (1)
  • PAGE_SIZE (17-17)
internal/connectors/plugins/registry/plugins_test.go (2)
internal/connectors/plugins/registry/plugins.go (2)
  • RegisterPlugin (41-56)
  • DummyPSPName (16-16)
internal/models/plugin.go (2)
  • PluginTypeOpenBanking (17-17)
  • PluginTypePSP (16-16)
internal/connectors/plugins/public/moneycorp/plugin.go (1)
internal/connectors/plugins/public/moneycorp/config.go (2)
  • Config (12-17)
  • PAGE_SIZE (19-19)
internal/connectors/plugins/public/increase/plugin.go (2)
internal/connectors/plugins/public/increase/config.go (2)
  • Config (12-17)
  • PAGE_SIZE (19-19)
internal/connectors/plugins/public/stripe/config.go (2)
  • Config (12-15)
  • PAGE_SIZE (17-17)
internal/connectors/plugins/public/atlar/plugin.go (1)
internal/connectors/plugins/public/atlar/config.go (2)
  • Config (12-17)
  • PAGE_SIZE (19-19)
internal/connectors/plugins/public/currencycloud/plugin.go (3)
internal/connectors/plugins/public/currencycloud/config.go (2)
  • Config (11-15)
  • PAGE_SIZE (17-17)
internal/connectors/plugins/public/stripe/config.go (2)
  • Config (12-15)
  • PAGE_SIZE (17-17)
internal/connectors/plugins/public/qonto/config.go (1)
  • PAGE_SIZE (20-20)
internal/connectors/plugins/public/column/plugin.go (1)
internal/connectors/plugins/public/column/config.go (1)
  • PAGE_SIZE (18-18)
internal/connectors/plugins/public/dummypay/plugin.go (2)
internal/connectors/plugins/public/dummypay/config.go (2)
  • Config (10-14)
  • PAGE_SIZE (16-16)
internal/connectors/plugins/public/qonto/config.go (1)
  • PAGE_SIZE (20-20)
internal/connectors/plugins/public/wise/plugin.go (4)
internal/connectors/plugins/public/dummypay/config.go (2)
  • Config (10-14)
  • PAGE_SIZE (16-16)
internal/connectors/plugins/public/stripe/config.go (2)
  • Config (12-15)
  • PAGE_SIZE (17-17)
internal/connectors/plugins/public/wise/config.go (2)
  • Config (17-23)
  • PAGE_SIZE (25-25)
internal/connectors/plugins/public/qonto/config.go (1)
  • PAGE_SIZE (20-20)
internal/connectors/plugins/public/modulr/plugin.go (1)
internal/connectors/plugins/public/modulr/config.go (2)
  • Config (12-17)
  • PAGE_SIZE (19-19)
🔇 Additional comments (48)
internal/connectors/engine/engine_test.go (1)

480-480: LGTM! PageSize correctly removed from Config.

The test now passes only Name and PollingPeriod to the workflow's Config struct, which correctly reflects the removal of PageSize from user-configurable settings as per the PR objectives.

internal/connectors/plugins/public/increase/plugin.go (1)

20-20: LGTM! Plugin registration updated with PAGE_SIZE constant.

The registration now correctly passes the PAGE_SIZE constant to the registry, migrating pagination configuration from user-provided to provider-specific hardcoded values.

internal/connectors/plugins/public/mangopay/plugin.go (1)

22-22: LGTM! Consistent with the pagination migration pattern.

The plugin registration correctly includes PAGE_SIZE as part of the migration from user-configurable to provider-specific pagination.

internal/connectors/plugins/public/tink/config.go (1)

17-18: LGTM! PAGE_SIZE constant properly defined.

The constant is correctly declared with a value of 25, consistent with other provider plugins in this migration.

internal/connectors/plugins/public/modulr/plugin.go (1)

19-19: LGTM! Plugin registration follows the established pattern.

The PAGE_SIZE constant is correctly passed to the registry, aligning with the PR's objective to hard-code pagination per connector.

internal/connectors/plugins/public/powens/config.go (1)

18-19: LGTM! PAGE_SIZE constant added correctly.

The constant declaration follows Go conventions and is consistent with other providers in this refactoring.

internal/connectors/plugins/public/qonto/plugin.go (1)

19-19: LGTM! Registration correctly updated with PAGE_SIZE.

The change is consistent with the pagination migration pattern applied across all provider plugins.

internal/connectors/plugins/public/bankingcircle/plugin.go (1)

19-19: LGTM! Plugin registration completed consistently.

The PAGE_SIZE constant is correctly passed to the registry, completing the uniform migration pattern across all reviewed provider plugins.

internal/connectors/plugins/public/stripe/plugin.go (1)

21-21: LGTM! Registry integration follows the expected pattern.

The addition of PAGE_SIZE to the RegisterPlugin call correctly implements the shift from user-configurable to provider-specific pagination. Stripe's value of 100 is appropriately passed from the config constant.

internal/connectors/plugins/public/moneycorp/plugin.go (1)

19-19: LGTM! Consistent with the registry-based pagination pattern.

The PAGE_SIZE argument is correctly added to align with the new plugin registration signature.

internal/connectors/engine/workflow/fetch_others.go (1)

52-66: Well-implemented runtime pageSize retrieval.

The migration from config-based to registry-based pageSize lookup is clean and includes proper error handling. The cast from uint64 to int on line 66 is safe given the hardcoded PAGE_SIZE values (25-100) used across providers.

internal/connectors/plugins/public/bankingcircle/config.go (1)

22-22: LGTM! Provider-specific page size constant added.

The PAGE_SIZE constant is appropriately defined for the banking circle provider.

internal/connectors/plugins/public/atlar/config.go (1)

19-19: LGTM! Consistent constant definition.

PAGE_SIZE is correctly defined for the Atlar provider.

internal/connectors/plugins/public/wise/plugin.go (1)

21-21: LGTM! Registry integration is correct.

The PAGE_SIZE argument is properly added to the plugin registration.

internal/connectors/plugins/public/adyen/config.go (1)

21-21: LGTM! Provider constant added.

The PAGE_SIZE constant is correctly defined for Adyen.

internal/connectors/plugins/public/currencycloud/config.go (1)

17-17: LGTM! Page size constant defined.

The PAGE_SIZE constant follows the established pattern for Currency Cloud.

internal/connectors/engine/workflow/main_test.go (1)

91-91: LGTM!

The test correctly updates the RegisterPlugin call to include the pageSize parameter. Using a hardcoded literal value in tests is appropriate for test isolation and clarity.

internal/connectors/plugins/public/column/plugin.go (1)

21-21: LGTM!

The RegisterPlugin call correctly passes the PAGE_SIZE constant from the column config package, aligning with the new per-provider pagination architecture.

internal/connectors/plugins/public/adyen/plugin.go (1)

20-20: LGTM!

PAGE_SIZE constant is correctly defined at config.go:21 and properly passed as the final argument to the RegisterPlugin call at plugin.go:20, confirming alignment with the per-provider pagination architecture.

internal/connectors/plugins/public/modulr/config.go (1)

19-20: ---

PAGE_SIZE=25 is valid for Modulr API.

Based on Modulr API documentation, the page size has a maximum of 500. Modulr's docs do not prescribe a specific "recommended" page size, but the choice of 25 is well below the limit and is a reasonable value. No changes needed.

internal/connectors/plugins/public/mangopay/config.go (1)

19-20: PAGE_SIZE=25 is valid and well-aligned with Mangopay API limits.

Mangopay uses page-based pagination with a default per_page of 10 and maximum of 100. The chosen value of 25 sits comfortably within this range, offering a reasonable balance between request efficiency and response overhead. No optimization changes required.

internal/connectors/plugins/public/increase/config.go (1)

19-20: Update PAGE_SIZE from 25 to 100 to align with Increase API recommendations.

The Increase API recommends a page size of 100. The current configuration uses 25, which is below the recommended value and will result in unnecessary pagination overhead. Update PAGE_SIZE to 100 at line 19 in internal/connectors/plugins/public/increase/config.go.

⛔ Skipped due to learnings
Learnt from: fguery
Repo: formancehq/payments PR: 427
File: internal/connectors/plugins/public/qonto/client/transactions.go:109-111
Timestamp: 2025-05-13T14:32:34.057Z
Learning: Qonto API has a maximum page size of 100 records per page. When requesting more than 100 records, Qonto silently caps it at 100 rather than throwing an error.
internal/connectors/plugins/public/moneycorp/config.go (1)

19-20: LGTM! PAGE_SIZE constant defined.

The addition of the PAGE_SIZE constant is clean and aligns with the broader PR pattern of moving pagination configuration from user-configurable parameters to provider-specific constants.

internal/connectors/engine/workflow/fetch_external_accounts.go (1)

53-67: LGTM! Registry-based page size retrieval implemented correctly.

The migration from config-based to registry-based page size retrieval is well-implemented:

  • Appropriate error handling for registry lookup
  • Clear comment explaining the change
  • Type conversion from uint64 to int is safe given hardcoded PAGE_SIZE values (typically 25)
internal/connectors/plugins/public/powens/plugin.go (1)

17-21: LGTM! Plugin registration updated with PAGE_SIZE.

The addition of PAGE_SIZE to the RegisterPlugin call correctly integrates with the registry's new page size management. This follows the established pattern for plugin initialization.

internal/connectors/engine/workflow/fetch_payments.go (1)

53-67: LGTM! Consistent registry-based page size retrieval.

The implementation mirrors the pattern used in fetch_external_accounts.go with appropriate error handling and clear commenting. The registry-based approach successfully decouples page size from user configuration.

internal/connectors/plugins/public/generic/plugin.go (1)

16-20: LGTM! Plugin registration updated with PAGE_SIZE.

The registration call correctly passes the PAGE_SIZE constant to the registry, following the same pattern as other provider plugins in this PR.

internal/connectors/plugins/public/dummypay/config.go (1)

16-17: LGTM! PAGE_SIZE constant added.

The constant definition is straightforward and follows the established pattern across all provider config files in this PR.

internal/connectors/plugins/public/qonto/config.go (2)

20-21: LGTM! PAGE_SIZE constant added.

The constant definition follows the consistent pattern across all providers in this PR.


23-29: Minor formatting adjustment.

The formatting changes to the raw struct fields are cosmetic and have no semantic impact.

internal/connectors/plugins/public/wise/config.go (1)

25-26: LGTM! PAGE_SIZE constant added.

The constant definition is clean and consistent with the pattern established across all provider plugins in this PR.

internal/connectors/plugins/public/plaid/plugin.go (1)

19-19: LGTM!

The addition of PAGE_SIZE to the RegisterPlugin call correctly migrates pagination configuration from user-configurable to provider-specific, aligning with the PR objective.

internal/models/config_test.go (1)

14-192: LGTM!

Test suite correctly updated to remove all PageSize references, consistent with the migration to provider-specific page sizes. The tests now appropriately focus on Name and PollingPeriod validation.

internal/connectors/plugins/public/currencycloud/plugin.go (1)

19-19: LGTM!

The RegisterPlugin call correctly adds PAGE_SIZE parameter, consistent with the migration pattern across all plugins.

internal/connectors/engine/workflow/fetch_accounts.go (2)

8-8: LGTM!

Registry import correctly added to support dynamic page size retrieval.


53-66: LGTM! Dynamic page size retrieval implemented correctly.

The change from static Config.PageSize to dynamic registry.GetPageSize lookup is well-implemented with appropriate error handling. The type conversion from uint64 to int is safe given typical pagination values (25-100).

internal/connectors/plugins/public/stripe/config.go (1)

17-18: LGTM!

PAGE_SIZE constant appropriately set to 100 for Stripe, which is reasonable given Stripe's API typically supports larger page sizes compared to other providers.

test/e2e/api_connectors_test.go (1)

554-571: LGTM!

Test helper function correctly updated to omit PageSize initialization, aligning with the removal of PageSize from the Config struct.

internal/connectors/plugins/public/generic/config.go (1)

18-19: LGTM!

PAGE_SIZE constant properly added with standard value of 25, consistent with most other provider plugins.

internal/connectors/engine/workflow/fetch_balances.go (2)

8-8: LGTM!

Registry import correctly added to enable dynamic page size retrieval.


53-66: LGTM! Dynamic page size retrieval implemented correctly.

The implementation is consistent with the fetch_accounts workflow, properly retrieving page size from the registry with appropriate error handling. The conversion from uint64 to int is safe for typical pagination values.

internal/connectors/plugins/public/atlar/plugin.go (1)

20-20: LGTM!

The addition of PAGE_SIZE to the RegisterPlugin call correctly implements the per-connector pagination approach. The constant is properly defined in the config.go file.

internal/connectors/plugins/public/dummypay/plugin.go (1)

18-18: LGTM!

The PAGE_SIZE argument is correctly added to the RegisterPlugin call, consistent with the pattern across other plugins.

internal/connectors/plugins/public/tink/plugin.go (1)

20-20: LGTM!

The PAGE_SIZE parameter addition is consistent with the broader refactoring to move pagination configuration from user settings to provider constants.

internal/connectors/plugins/registry/plugins_test.go (1)

50-51: LGTM!

The test calls are correctly updated to match the new RegisterPlugin signature. Using a hardcoded value of 25 is appropriate for testing.

internal/connectors/plugins/registry/plugins.go (3)

30-30: LGTM!

The pageSize field addition to PluginInformation is properly typed and follows the existing struct conventions.


41-56: LGTM!

The RegisterPlugin signature is correctly extended with the pageSize parameter, and the value is properly stored in the PluginInformation struct.


171-178: LGTM!

The GetPageSize function follows the established pattern of other registry getter functions (GetPluginType, GetCapabilities, GetConfig) with consistent error handling and provider name normalization.

@codecov
Copy link

codecov bot commented Nov 24, 2025

Codecov Report

❌ Patch coverage is 31.25000% with 33 lines in your changes missing coverage. Please review.
✅ Project coverage is 63.15%. Comparing base (6485c81) to head (59ac1b1).
⚠️ Report is 1 commits behind head on main.

Files with missing lines Patch % Lines
internal/connectors/plugins/registry/plugins.go 14.28% 6 Missing ⚠️
...ernal/connectors/engine/workflow/fetch_accounts.go 50.00% 1 Missing and 1 partial ⚠️
...ernal/connectors/engine/workflow/fetch_balances.go 50.00% 1 Missing and 1 partial ⚠️
...nectors/engine/workflow/fetch_external_accounts.go 50.00% 1 Missing and 1 partial ⚠️
...nternal/connectors/engine/workflow/fetch_others.go 50.00% 1 Missing and 1 partial ⚠️
...ernal/connectors/engine/workflow/fetch_payments.go 50.00% 1 Missing and 1 partial ⚠️
internal/connectors/plugins/public/adyen/plugin.go 0.00% 1 Missing ⚠️
internal/connectors/plugins/public/atlar/plugin.go 0.00% 1 Missing ⚠️
.../connectors/plugins/public/bankingcircle/plugin.go 0.00% 1 Missing ⚠️
...nternal/connectors/plugins/public/column/plugin.go 0.00% 1 Missing ⚠️
... and 13 more
Additional details and impacted files
@@            Coverage Diff             @@
##             main     #602      +/-   ##
==========================================
- Coverage   63.18%   63.15%   -0.03%     
==========================================
  Files         787      787              
  Lines       35597    35613      +16     
==========================================
  Hits        22491    22491              
- Misses      11621    11632      +11     
- Partials     1485     1490       +5     

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

@fguery fguery force-pushed the EN-420_change_default_pagination branch from fd122f1 to 1194562 Compare November 25, 2025 15:11
@fguery
Copy link
Contributor Author

fguery commented Nov 25, 2025

@Quentin-David-24 @laouji I took the opportunity to fully remove the page size as a field in options.
We still have the field showing up in Console, which I think is necessary for people not on the latest stack, but even if passed in it's not taken into account.

@fguery
Copy link
Contributor Author

fguery commented Nov 25, 2025

@reslene we'll be removing the PageSize from the SDK and will hard code it going forward; is that a problem on Console in the long run? As mentioned above you can still pass it in, it'll be ignored though

Copy link
Contributor

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

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

Actionable comments posted: 0

🧹 Nitpick comments (13)
internal/connectors/plugins/public/bankingcircle/config.go (1)

22-22: PAGE_SIZE constant is fine; consider idiomatic Go naming

The connector-specific page size constant and value (100) look reasonable, especially given the documented max of 5000. For consistency with idiomatic Go exported names (and to match typical project conventions), consider renaming to PageSize instead of PAGE_SIZE when convenient.

internal/connectors/plugins/public/dummypay/config.go (1)

16-17: LGTM! Straightforward constant addition.

The PAGE_SIZE constant is correctly defined and aligns with the PR objective of hard-coding pagination per connector. The value of 25 is reasonable for pagination.

One minor note: The naming convention uses SCREAMING_SNAKE_CASE rather than idiomatic Go CamelCase (e.g., PageSize). If this pattern is consistent across all plugins in this PR, then it's fine. If not, consider using PageSize for consistency with Go conventions.

internal/connectors/engine/engine_test.go (1)

465-495: LGTM! The Config struct usage is correct.

The change at line 480 correctly reflects that models.Config no longer includes PageSize, passing only Name and PollingPeriod to the workflow. This aligns with the PR objective to hard-code pagination per connector.

The test input at line 467 still includes "pageSize":25 while the Config at line 480 omits it. This appears intentional—the raw JSON config is stored (line 490) but pageSize isn't passed to the workflow. However, for test clarity, consider either:

  • Removing pageSize from the input JSON if it should no longer be accepted
  • Adding a comment or separate test case to explicitly verify that pageSize in user input is gracefully ignored
internal/connectors/plugins/public/moneycorp/config.go (1)

19-19: Clarify Moneycorp PAGE_SIZE vs documented maximum

The comment says “max page size is 10000 according to docs (!)” while PAGE_SIZE is set to 100. If the lower value is intentional (e.g., to limit load), consider making that explicit to avoid confusion, for example:

const PAGE_SIZE = 100 // docs allow up to 10000, but we cap at 100 for safety
internal/connectors/plugins/public/atlar/config.go (1)

19-19: Clarify Atlar PAGE_SIZE choice relative to documented max

The comment notes a docs max of 500 while PAGE_SIZE is set to 100. If you’re intentionally capping below the provider’s maximum (e.g., for safety or latency reasons), consider updating the comment to state that explicitly so future readers don’t wonder if this is a mistake:

const PAGE_SIZE = 100 // docs allow up to 500, but we cap at 100
internal/connectors/engine/workflow/fetch_others.go (1)

7-8: fetchNextOthers correctly adopts registry‑based pageSize lookup

Fetching pageSize once via registry.GetPageSize(fetchNextOthers.ConnectorID.Provider) and passing int(pageSize) into PluginFetchNextOthers is consistent with the new pagination design and keeps the loop simple. Error handling is appropriate.

If this GetPageSize‑then‑cast pattern is repeated across multiple workflow files (accounts, balances, payments, others), you might later consider a small helper to DRY it up, but it’s fine as‑is.

Also applies to: 52-56, 66-67

internal/connectors/plugins/registry/plugins_test.go (2)

50-51: RegisterPlugin calls correctly updated with pageSize parameter.

The test registrations now properly pass the pageSize argument (25) to align with the updated RegisterPlugin signature.

Consider extracting the test pageSize value to a named constant for clarity:

+const testPageSize = 25
+
 Context("population of plugin configuration", func() {
-  RegisterPlugin(name, models.PluginTypeOpenBanking, fn, capabilities, conf, 25)
-  RegisterPlugin(DummyPSPName, models.PluginTypePSP, fn, capabilities, conf, 25)
+  RegisterPlugin(name, models.PluginTypeOpenBanking, fn, capabilities, conf, testPageSize)
+  RegisterPlugin(DummyPSPName, models.PluginTypePSP, fn, capabilities, conf, testPageSize)

134-142: Consider adding test coverage for GetPageSize.

The tests verify GetPluginType but don't cover the newly added GetPageSize function. Adding test coverage would ensure it correctly returns the pageSize for registered plugins and proper errors for unknown providers.

Consider adding a test case similar to the existing GetPluginType test:

It("returns the right page size", func(ctx SpecContext) {
	pageSize, err := GetPageSize(name)
	Expect(err).To(BeNil())
	Expect(pageSize).To(Equal(uint64(25)))

	pageSize, err = GetPageSize(DummyPSPName)
	Expect(err).To(BeNil())
	Expect(pageSize).To(Equal(uint64(25)))

	_, err = GetPageSize("nonexistent")
	Expect(err).NotTo(BeNil())
})
internal/connectors/plugins/registry/plugins.go (1)

41-56: Consider validating pageSize parameter in RegisterPlugin.

The RegisterPlugin function now accepts a pageSize parameter but doesn't validate that it's greater than zero. A pageSize of 0 could lead to runtime issues in pagination logic.

Based on learnings, RegisterPlugin is called from init() blocks and should panic on configuration errors. Consider adding validation:

 func RegisterPlugin(
 	provider string,
 	pluginType models.PluginType,
 	createFunc PluginCreateFunction,
 	capabilities []models.Capability,
 	conf any,
 	pageSize uint64,
 ) {
+	if pageSize == 0 {
+		log.Panicf("RegisterPlugin pageSize must be greater than 0 for provider %s", provider)
+	}
 	pluginsRegistry[provider] = PluginInformation{
 		pluginType:   pluginType,
 		capabilities: capabilities,
 		createFunc:   createFunc,
 		config:       setupConfig(conf),
 		pageSize:     pageSize,
 	}
 }
internal/models/config_test.go (4)

14-71: Validation scenarios look solid; consider explicitly testing zero-duration behavior

The validation tests nicely cover missing name, lower/upper polling bounds, and a happy path. Given that unmarshal tests assert PollingPeriod == 0 is allowed, you might want an extra case here where PollingPeriod is 0 and Name is set, to lock in that Validate() continues to treat the zero duration as acceptable.


73-92: MarshalJSON expectations align with the new config shape; you could also assert key count

This test correctly pins name and the stringified pollingPeriod ("5m0s"). If you want extra protection against reintroducing fields like pageSize on the top-level config, consider also asserting len(jsonMap) == 2 so the JSON shape stays minimal and stable.


94-183: UnmarshalJSON subtests comprehensively cover default, invalid, and zero polling periods

The subtest matrix (valid, default polling period, invalid duration string, zero duration, invalid JSON) gives good coverage of the updated semantics, and the use of t.Parallel() per subtest is safe since everything is local to each test. As a small hardening tweak, you could assert on the error type or message in the "invalid polling period" case to distinguish a duration-parse failure from other possible future errors, but it’s not strictly necessary.


185-192: DefaultConfig test matches the unmarshal default; consider de-duplicating the 30m literal

This test correctly asserts the default polling period (30 minutes) and empty name. If there is (or ever will be) a shared constant for the default polling period in models, it might be preferable for the test to assert against that instead of duplicating 30*time.Minute in multiple places.

📜 Review details

Configuration used: CodeRabbit UI

Review profile: CHILL

Plan: Pro

Disabled knowledge base sources:

  • Linear integration is disabled by default for public repositories

You can enable these sources in your CodeRabbit configuration.

📥 Commits

Reviewing files that changed from the base of the PR and between fd122f1 and 1194562.

⛔ Files ignored due to path filters (3)
  • openapi.yaml is excluded by !**/*.yaml
  • openapi/v3/v3-connectors-config.yaml is excluded by !**/*.yaml
  • pkg/client/.speakeasy/gen.lock is excluded by !**/*.lock, !**/*.lock
📒 Files selected for processing (84)
  • docs/api/README.md (0 hunks)
  • internal/connectors/config_test.go (0 hunks)
  • internal/connectors/engine/engine_test.go (1 hunks)
  • internal/connectors/engine/workflow/fetch_accounts.go (2 hunks)
  • internal/connectors/engine/workflow/fetch_balances.go (2 hunks)
  • internal/connectors/engine/workflow/fetch_external_accounts.go (2 hunks)
  • internal/connectors/engine/workflow/fetch_others.go (3 hunks)
  • internal/connectors/engine/workflow/fetch_payments.go (2 hunks)
  • internal/connectors/engine/workflow/main_test.go (1 hunks)
  • internal/connectors/plugins/public/adyen/config.go (1 hunks)
  • internal/connectors/plugins/public/adyen/plugin.go (1 hunks)
  • internal/connectors/plugins/public/atlar/config.go (1 hunks)
  • internal/connectors/plugins/public/atlar/plugin.go (1 hunks)
  • internal/connectors/plugins/public/bankingcircle/config.go (1 hunks)
  • internal/connectors/plugins/public/bankingcircle/plugin.go (1 hunks)
  • internal/connectors/plugins/public/column/config.go (1 hunks)
  • internal/connectors/plugins/public/column/plugin.go (1 hunks)
  • internal/connectors/plugins/public/currencycloud/config.go (1 hunks)
  • internal/connectors/plugins/public/currencycloud/plugin.go (1 hunks)
  • internal/connectors/plugins/public/dummypay/config.go (1 hunks)
  • internal/connectors/plugins/public/dummypay/plugin.go (1 hunks)
  • internal/connectors/plugins/public/generic/config.go (1 hunks)
  • internal/connectors/plugins/public/generic/plugin.go (1 hunks)
  • internal/connectors/plugins/public/increase/config.go (1 hunks)
  • internal/connectors/plugins/public/increase/plugin.go (1 hunks)
  • internal/connectors/plugins/public/mangopay/config.go (1 hunks)
  • internal/connectors/plugins/public/mangopay/plugin.go (1 hunks)
  • internal/connectors/plugins/public/modulr/config.go (1 hunks)
  • internal/connectors/plugins/public/modulr/plugin.go (1 hunks)
  • internal/connectors/plugins/public/moneycorp/config.go (1 hunks)
  • internal/connectors/plugins/public/moneycorp/plugin.go (1 hunks)
  • internal/connectors/plugins/public/plaid/config.go (1 hunks)
  • internal/connectors/plugins/public/plaid/plugin.go (1 hunks)
  • internal/connectors/plugins/public/powens/config.go (1 hunks)
  • internal/connectors/plugins/public/powens/plugin.go (1 hunks)
  • internal/connectors/plugins/public/qonto/config.go (1 hunks)
  • internal/connectors/plugins/public/qonto/plugin.go (1 hunks)
  • internal/connectors/plugins/public/stripe/config.go (1 hunks)
  • internal/connectors/plugins/public/stripe/plugin.go (1 hunks)
  • internal/connectors/plugins/public/tink/config.go (1 hunks)
  • internal/connectors/plugins/public/tink/plugin.go (1 hunks)
  • internal/connectors/plugins/public/wise/config.go (1 hunks)
  • internal/connectors/plugins/public/wise/plugin.go (1 hunks)
  • internal/connectors/plugins/registry/configs.go (0 hunks)
  • internal/connectors/plugins/registry/plugins.go (3 hunks)
  • internal/connectors/plugins/registry/plugins_test.go (1 hunks)
  • internal/models/config.go (0 hunks)
  • internal/models/config_test.go (4 hunks)
  • pkg/client/docs/models/components/v3adyenconfig.md (0 hunks)
  • pkg/client/docs/models/components/v3atlarconfig.md (0 hunks)
  • pkg/client/docs/models/components/v3bankingcircleconfig.md (0 hunks)
  • pkg/client/docs/models/components/v3columnconfig.md (0 hunks)
  • pkg/client/docs/models/components/v3currencycloudconfig.md (0 hunks)
  • pkg/client/docs/models/components/v3dummypayconfig.md (0 hunks)
  • pkg/client/docs/models/components/v3genericconfig.md (0 hunks)
  • pkg/client/docs/models/components/v3increaseconfig.md (0 hunks)
  • pkg/client/docs/models/components/v3mangopayconfig.md (0 hunks)
  • pkg/client/docs/models/components/v3modulrconfig.md (0 hunks)
  • pkg/client/docs/models/components/v3moneycorpconfig.md (0 hunks)
  • pkg/client/docs/models/components/v3plaidconfig.md (0 hunks)
  • pkg/client/docs/models/components/v3powensconfig.md (0 hunks)
  • pkg/client/docs/models/components/v3qontoconfig.md (0 hunks)
  • pkg/client/docs/models/components/v3stripeconfig.md (0 hunks)
  • pkg/client/docs/models/components/v3tinkconfig.md (0 hunks)
  • pkg/client/docs/models/components/v3wiseconfig.md (0 hunks)
  • pkg/client/models/components/v3adyenconfig.go (0 hunks)
  • pkg/client/models/components/v3atlarconfig.go (0 hunks)
  • pkg/client/models/components/v3bankingcircleconfig.go (0 hunks)
  • pkg/client/models/components/v3columnconfig.go (0 hunks)
  • pkg/client/models/components/v3currencycloudconfig.go (0 hunks)
  • pkg/client/models/components/v3dummypayconfig.go (0 hunks)
  • pkg/client/models/components/v3genericconfig.go (0 hunks)
  • pkg/client/models/components/v3increaseconfig.go (0 hunks)
  • pkg/client/models/components/v3mangopayconfig.go (0 hunks)
  • pkg/client/models/components/v3modulrconfig.go (0 hunks)
  • pkg/client/models/components/v3moneycorpconfig.go (0 hunks)
  • pkg/client/models/components/v3plaidconfig.go (0 hunks)
  • pkg/client/models/components/v3powensconfig.go (0 hunks)
  • pkg/client/models/components/v3qontoconfig.go (0 hunks)
  • pkg/client/models/components/v3stripeconfig.go (0 hunks)
  • pkg/client/models/components/v3tinkconfig.go (0 hunks)
  • pkg/client/models/components/v3wiseconfig.go (0 hunks)
  • test/e2e/api_connectors_test.go (1 hunks)
  • tools/compile-configs/main.go (0 hunks)
💤 Files with no reviewable changes (39)
  • pkg/client/docs/models/components/v3wiseconfig.md
  • pkg/client/models/components/v3plaidconfig.go
  • tools/compile-configs/main.go
  • internal/models/config.go
  • pkg/client/models/components/v3increaseconfig.go
  • pkg/client/models/components/v3mangopayconfig.go
  • internal/connectors/plugins/registry/configs.go
  • pkg/client/models/components/v3qontoconfig.go
  • pkg/client/docs/models/components/v3plaidconfig.md
  • pkg/client/docs/models/components/v3adyenconfig.md
  • pkg/client/models/components/v3bankingcircleconfig.go
  • pkg/client/docs/models/components/v3genericconfig.md
  • pkg/client/models/components/v3moneycorpconfig.go
  • pkg/client/models/components/v3atlarconfig.go
  • pkg/client/docs/models/components/v3currencycloudconfig.md
  • pkg/client/docs/models/components/v3modulrconfig.md
  • pkg/client/models/components/v3wiseconfig.go
  • pkg/client/models/components/v3dummypayconfig.go
  • pkg/client/models/components/v3powensconfig.go
  • pkg/client/models/components/v3adyenconfig.go
  • pkg/client/docs/models/components/v3atlarconfig.md
  • pkg/client/docs/models/components/v3increaseconfig.md
  • pkg/client/models/components/v3tinkconfig.go
  • pkg/client/models/components/v3stripeconfig.go
  • pkg/client/models/components/v3genericconfig.go
  • pkg/client/docs/models/components/v3dummypayconfig.md
  • internal/connectors/config_test.go
  • pkg/client/models/components/v3modulrconfig.go
  • pkg/client/docs/models/components/v3qontoconfig.md
  • pkg/client/docs/models/components/v3mangopayconfig.md
  • pkg/client/docs/models/components/v3stripeconfig.md
  • pkg/client/docs/models/components/v3bankingcircleconfig.md
  • pkg/client/docs/models/components/v3powensconfig.md
  • docs/api/README.md
  • pkg/client/docs/models/components/v3tinkconfig.md
  • pkg/client/models/components/v3columnconfig.go
  • pkg/client/docs/models/components/v3columnconfig.md
  • pkg/client/models/components/v3currencycloudconfig.go
  • pkg/client/docs/models/components/v3moneycorpconfig.md
🚧 Files skipped from review as they are similar to previous changes (27)
  • internal/connectors/plugins/public/powens/plugin.go
  • internal/connectors/plugins/public/tink/plugin.go
  • internal/connectors/plugins/public/wise/config.go
  • internal/connectors/plugins/public/currencycloud/config.go
  • internal/connectors/plugins/public/plaid/plugin.go
  • internal/connectors/engine/workflow/fetch_balances.go
  • internal/connectors/plugins/public/currencycloud/plugin.go
  • internal/connectors/plugins/public/increase/config.go
  • internal/connectors/engine/workflow/fetch_payments.go
  • internal/connectors/plugins/public/generic/plugin.go
  • internal/connectors/plugins/public/column/plugin.go
  • internal/connectors/plugins/public/wise/plugin.go
  • internal/connectors/plugins/public/stripe/plugin.go
  • internal/connectors/plugins/public/column/config.go
  • internal/connectors/plugins/public/atlar/plugin.go
  • internal/connectors/plugins/public/bankingcircle/plugin.go
  • internal/connectors/engine/workflow/fetch_external_accounts.go
  • internal/connectors/plugins/public/adyen/plugin.go
  • internal/connectors/engine/workflow/main_test.go
  • internal/connectors/plugins/public/adyen/config.go
  • internal/connectors/plugins/public/plaid/config.go
  • internal/connectors/plugins/public/qonto/plugin.go
  • internal/connectors/plugins/public/powens/config.go
  • internal/connectors/plugins/public/modulr/config.go
  • internal/connectors/plugins/public/increase/plugin.go
  • internal/connectors/plugins/public/dummypay/plugin.go
  • internal/connectors/plugins/public/mangopay/plugin.go
🧰 Additional context used
🧠 Learnings (5)
📚 Learning: 2024-12-12T12:45:27.164Z
Learnt from: laouji
Repo: formancehq/payments PR: 193
File: internal/connectors/plugins/public/dummypay/client/client.go:104-131
Timestamp: 2024-12-12T12:45:27.164Z
Learning: The `Balance` struct in `internal/connectors/plugins/public/dummypay/client/client.go` is only used in tests, so changing `AmountInMinors` from `int64` to `*big.Int` is not necessary.

Applied to files:

  • test/e2e/api_connectors_test.go
  • internal/connectors/plugins/public/moneycorp/plugin.go
  • internal/connectors/plugins/public/moneycorp/config.go
  • internal/connectors/plugins/public/stripe/config.go
  • internal/connectors/plugins/public/dummypay/config.go
  • internal/connectors/plugins/public/bankingcircle/config.go
  • internal/connectors/plugins/registry/plugins_test.go
  • internal/connectors/plugins/public/qonto/config.go
📚 Learning: 2025-01-17T09:48:09.578Z
Learnt from: laouji
Repo: formancehq/payments PR: 262
File: internal/connectors/plugins/registry/plugins.go:31-42
Timestamp: 2025-01-17T09:48:09.578Z
Learning: In Go packages that handle plugin registration, when RegisterPlugin is called from init() blocks, it should panic on configuration errors rather than return them, to prevent the program from starting with misconfigured plugins.

Applied to files:

  • internal/connectors/plugins/public/modulr/plugin.go
  • internal/connectors/plugins/registry/plugins_test.go
📚 Learning: 2025-11-06T15:50:27.524Z
Learnt from: paul-nicolas
Repo: formancehq/payments PR: 580
File: internal/connectors/engine/workflow/send_events.go:69-75
Timestamp: 2025-11-06T15:50:27.524Z
Learning: In the payments codebase, the BankAccount model (internal/models/bank_accounts.go) does not have a ConnectorID field. Bank accounts are global entities not scoped to individual connectors, so when sending bank account events via SendEventsRequest, the ConnectorID field should be nil/omitted.

Applied to files:

  • internal/connectors/engine/workflow/fetch_accounts.go
📚 Learning: 2025-05-15T16:35:29.660Z
Learnt from: fguery
Repo: formancehq/payments PR: 427
File: internal/connectors/plugins/public/qonto/balances.go:20-55
Timestamp: 2025-05-15T16:35:29.660Z
Learning: The Qonto connector plugin has unit tests for fetchNextBalances in internal/connectors/plugins/public/qonto/balances_test.go, covering success cases, missing FromPayload, invalid JSON handling, and other error conditions.

Applied to files:

  • internal/connectors/engine/workflow/fetch_accounts.go
  • internal/connectors/plugins/registry/plugins_test.go
📚 Learning: 2025-01-09T09:56:16.746Z
Learnt from: laouji
Repo: formancehq/payments PR: 251
File: internal/connectors/engine/engine.go:327-333
Timestamp: 2025-01-09T09:56:16.746Z
Learning: In the `ConnectorsConfigUpdate` storage method, only the config field is updated for connectors. Other fields like CreatedAt are preserved and not affected by the update operation.

Applied to files:

  • internal/connectors/engine/engine_test.go
🧬 Code graph analysis (6)
internal/connectors/plugins/public/moneycorp/plugin.go (1)
internal/connectors/plugins/public/moneycorp/config.go (2)
  • Config (12-17)
  • PAGE_SIZE (19-19)
internal/connectors/engine/workflow/fetch_others.go (1)
internal/connectors/plugins/registry/plugins.go (1)
  • GetPageSize (171-178)
internal/connectors/plugins/public/modulr/plugin.go (1)
internal/connectors/plugins/public/modulr/config.go (2)
  • Config (12-17)
  • PAGE_SIZE (19-19)
internal/connectors/engine/workflow/fetch_accounts.go (3)
internal/connectors/plugins/registry/plugins.go (1)
  • GetPageSize (171-178)
internal/connectors/engine/activities/plugin_fetch_next_accounts.go (1)
  • PluginFetchNextAccounts (32-47)
internal/connectors/engine/workflow/workflow.go (1)
  • FromPayload (18-21)
internal/connectors/plugins/registry/plugins_test.go (2)
internal/connectors/plugins/registry/plugins.go (2)
  • RegisterPlugin (41-56)
  • DummyPSPName (16-16)
internal/models/plugin.go (2)
  • PluginTypeOpenBanking (17-17)
  • PluginTypePSP (16-16)
internal/connectors/engine/engine_test.go (1)
internal/models/config.go (1)
  • Config (20-23)
⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (1)
  • GitHub Check: Dirty
🔇 Additional comments (10)
internal/connectors/plugins/public/stripe/config.go (1)

17-18: PAGE_SIZE constant looks correct and consistent with the new pagination model

Hard-coding PAGE_SIZE = 100 with a brief comment is consistent with Stripe’s documented max page size and with the PR’s move toward per‑connector defaults; no issues from this file’s perspective.

internal/connectors/plugins/public/generic/config.go (1)

18-19: ****

The review's primary recommendation to rename PAGE_SIZE to PageSize is incorrect. The entire codebase consistently uses SCREAMING_SNAKE_CASE for this constant across all 18 plugins (wise, tink, plaid, stripe, etc.), making PAGE_SIZE the established pattern. Changing it to PageSize would break consistency, not improve it. Go permits SCREAMING_SNAKE_CASE for exported constants.

The only valid observation is that the comment "100 seems more likely" is vague compared to peer plugins (e.g., "max page size is 100"), but this is a minor documentation preference, not a convention violation. No changes are required.

Likely an incorrect or invalid review comment.

internal/connectors/plugins/public/tink/config.go (1)

17-18: Verify the page size limit against Tink API documentation.

The constant at line 17 cannot be verified with available resources—Tink's developer documentation requires JavaScript and cannot be accessed via web search. Please manually confirm that 100 is the correct maximum page size by checking Tink's API documentation directly.

Note: Other plugins in this PR show similar discrepancies (e.g., modulr, moneycorp, atlar), marked with "(!)". If Tink's actual max differs from 100, consider updating the comment accordingly.

internal/connectors/plugins/public/moneycorp/plugin.go (1)

16-20: Moneycorp plugin registration updated consistently with new pageSize API

Passing PAGE_SIZE alongside Config{} into registry.RegisterPlugin matches the new registry signature and keeps the per‑connector page size centralized in the config package. No issues from this change.

internal/connectors/plugins/public/qonto/config.go (1)

20-27: Qonto PAGE_SIZE constant fits new per‑connector pagination model

Introducing PAGE_SIZE = 100 and keeping the raw config fields aligned with Config cleanly supports the registry‑based pagination without changing validation behavior. Looks good.

internal/connectors/plugins/public/modulr/plugin.go (1)

16-20: Modulr plugin registration correctly wired with PAGE_SIZE

The added PAGE_SIZE argument in registry.RegisterPlugin aligns with the new registry signature and the constant defined in config.go. No further concerns.

internal/connectors/engine/workflow/fetch_accounts.go (1)

8-9: Registry‑based pageSize lookup in fetchAccounts looks correct; check Temporal compatibility

Using registry.GetPageSize(fetchNextAccount.ConnectorID.Provider) once before the loop and passing int(pageSize) into PluginFetchNextAccounts matches the new per‑connector PAGE_SIZE design. Error handling on missing plugins is straightforward, and avoiding a DB read here is a nice win.

One thing to keep in mind operationally: changing the effective page size for a provider can change the workflow’s behavior (number/shape of activity calls). Make sure this rollout is compatible with any long‑running Temporal workflows that might be replayed with a different page size than when they started.

Also applies to: 53-57, 66-67

internal/connectors/plugins/public/mangopay/config.go (1)

19-19: MangoPay PAGE_SIZE constant is straightforward and consistent

Defining PAGE_SIZE = 100 with a clear comment provides a single source of truth for the plugin and plugs cleanly into the registry‑based pagination. No issues.

test/e2e/api_connectors_test.go (1)

554-588: LGTM! PageSize correctly removed from connector config factories.

The config factory functions no longer include PageSize fields, aligning with the PR objective to move pagination control from user configuration to hard-coded per-connector values in the registry.

internal/connectors/plugins/registry/plugins.go (1)

171-178: LGTM! GetPageSize implementation follows established patterns.

The new GetPageSize function correctly retrieves the pageSize for a given provider, with error handling consistent with other registry lookup functions (GetConfig, GetPluginType, GetCapabilities).

Copy link
Contributor

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

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

Actionable comments posted: 7

♻️ Duplicate comments (6)
pkg/client/docs/models/components/v3bankingcircleconfig.md (1)

6-17: Same markdownlint MD037 nit as in V3StripeConfig docs

This deprecation row matches the intended behavior. As with V3StripeConfig, you may want to drop spaces inside ** DEPRECATED ** (e.g., **DEPRECATED**) to appease markdownlint, and then apply that convention project‑wide.

pkg/client/docs/models/components/v3plaidconfig.md (1)

6-14: Plaid PageSize deprecation docs align; optional markdownlint cleanup

The struck‑through PageSize row and warning look correct. Optionally, normalize ** DEPRECATED ** to **DEPRECATED** (or similar) to avoid MD037, in line with the other config docs.

pkg/client/docs/models/components/v3moneycorpconfig.md (1)

6-14: Moneycorp PageSize deprecation row looks fine; same MD037 nit

The deprecated PageSize row is consistent with the rest of the docs. As elsewhere, you can optionally collapse ** DEPRECATED ** to **DEPRECATED** to satisfy markdownlint.

pkg/client/docs/models/components/v3genericconfig.md (1)

6-13: Generic config PageSize deprecation is consistent; markdownlint nit

The deprecation messaging for PageSize matches the broader PR. To keep markdownlint happy, you may wish to remove spaces inside the emphasized DEPRECATED token here as well.

pkg/client/docs/models/components/v3adyenconfig.md (1)

6-16: Adyen PageSize deprecation docs match model; optional MD037 fix

Docs now correctly mark PageSize as deprecated. As with the other configs, consider tightening ** DEPRECATED ** to **DEPRECATED** to avoid the markdownlint MD037 warning.

pkg/client/docs/models/components/v3currencycloudconfig.md (1)

6-14: Currencycloud PageSize deprecation docs OK; same markdownlint styling nit

The deprecation row is in line with the rest of the PR. Optionally fix ** DEPRECATED ****DEPRECATED** (or similar) here too to address MD037.

🧹 Nitpick comments (8)
pkg/client/models/components/v3qontoconfig.go (2)

10-13: Verify if formatting changes will persist through code regeneration.

These formatting changes improve alignment, but since this is a generated file (line 1), they may be overwritten the next time Speakeasy regenerates the code. Ensure the generator is configured to produce this formatting, or consider whether manual edits to generated files align with your workflow.


14-15: Deprecation comment is appropriate.

The deprecation follows Go conventions and maintains backward compatibility as intended. The field will be ignored by the service while remaining in the SDK for clients not yet on the latest stack.

Consider making the deprecation message more actionable if there's a specific migration path:

-// Deprecated: This will be removed in a future release, please migrate away from it as soon as possible.
+// Deprecated: PageSize is now configured per connector and this field is ignored. Remove this field from your configuration.
pkg/client/models/components/v3dummypayconfig.go (1)

10-17: Clarify deprecation behavior and also deprecate GetPageSize accessor

The deprecation intent is clear, but a couple of tweaks would make it less ambiguous for SDK users:

  • The comment doesn’t currently say that the backend ignores this field and that page size is now fixed per connector, which is the core semantic change in this PR.
  • The default:"25" tag is now legacy and might confuse readers into thinking the value is still honored.
  • GetPageSize remains non‑deprecated, so callers using the accessor won’t see any deprecation signal even though the field is effectively dead.

Consider tightening this up along these lines:

-    // Deprecated: This will be removed in a future release, please migrate away from it as soon as possible.
-    PageSize            *int64  `default:"25" json:"pageSize"`
+    // Deprecated: this field is ignored by the server; page size is now fixed per connector.
+    // It is kept only for backward‑compatible client schemas and will be removed in a future release.
+    PageSize            *int64  `default:"25" json:"pageSize"`

and also deprecate the accessor so tools pick it up:

-func (o *V3DummypayConfig) GetPageSize() *int64 {
+// Deprecated: see V3DummypayConfig.PageSize.
+func (o *V3DummypayConfig) GetPageSize() *int64 {

If the default:"25" tag is no longer used anywhere in the client tooling, you could also drop it entirely to avoid mixed signals.

pkg/client/docs/models/components/v3stripeconfig.md (1)

6-12: PageSize deprecation text is good; minor markdownlint MD037 nit

The deprecation row correctly reflects that PageSize is being phased out. To satisfy markdownlint MD037, consider removing spaces inside the emphasis so ** DEPRECATED ** becomes **DEPRECATED** (or similar), which you can later apply consistently across all config docs.

pkg/client/models/components/v3adyenconfig.go (1)

14-19: Clarify PageSize deprecation semantics and consider the default:"25" tag

Marking PageSize as deprecated in the client model is consistent with the docs and the move to per‑connector page sizes. Given that the service now hard‑codes page size per connector and ignores this field, it may be worth (a) making the deprecation comment explicit that the value is ignored by the service, and/or (b) reconsidering the default:"25" tag so the generated default doesn’t suggest an effective runtime setting that no longer applies.

pkg/client/docs/models/components/v3columnconfig.md (1)

6-13: Deprecation row looks good; consider tightening markdown emphasis to satisfy markdownlint

The PageSize row is correctly marked as deprecated and visually struck through, which matches the new behavior. However, markdownlint’s MD037 warning stems from ** DEPRECATED ** having spaces inside the emphasis markers. If you care about keeping docs lint‑clean, consider changing that snippet to **DEPRECATED** (and similar in other docs or generators).

pkg/client/docs/models/components/v3modulrconfig.md (1)

6-14: Consistent PageSize deprecation; same markdownlint MD037 concern

This table mirrors the intended deprecation of PageSize and is consistent with the other config docs. As with V3ColumnConfig, ** DEPRECATED ** violates markdownlint’s no‑space‑in‑emphasis rule (MD037). If lint is enforced in CI, you may want to switch to **DEPRECATED** (or adjust the generator) to avoid spurious warnings.

test/e2e/api_connectors_test.go (1)

209-216: Stronger v3 config assertions are good; clarify intent around hard‑coded PageSize=25

The added expectations on Directory, LinkFlowError, Name, PollingPeriod, Provider, and UpdateLinkFlowError make the v3 update test more thorough, which is nice. The PageSize assertion pins the API contract to a concrete default of 25 even though PageSize is deprecated and ignored by the service:

Expect(getRes.V3GetConnectorConfigResponse.Data.V3DummypayConfig.PageSize).
    To(Equal(pointer.For(int64(25)))) // the response sets a default value

If 25 is meant to remain a stable, user‑visible default for Dummypay, this is fine but tightly couples the test to that constant. If instead PageSize is now purely a backward‑compat field that may vanish when the SDK drops it, you might want to (a) drop this specific assertion, or (b) just assert that PageSize is non‑nil, to reduce brittleness and future test churn when the client models are regenerated.

📜 Review details

Configuration used: CodeRabbit UI

Review profile: CHILL

Plan: Pro

Disabled knowledge base sources:

  • Linear integration is disabled by default for public repositories

You can enable these sources in your CodeRabbit configuration.

📥 Commits

Reviewing files that changed from the base of the PR and between 1194562 and b83e0d6.

⛔ Files ignored due to path filters (3)
  • openapi.yaml is excluded by !**/*.yaml
  • openapi/v3/v3-connectors-config.yaml is excluded by !**/*.yaml
  • pkg/client/.speakeasy/gen.lock is excluded by !**/*.lock, !**/*.lock
📒 Files selected for processing (38)
  • pkg/client/docs/models/components/v3adyenconfig.md (1 hunks)
  • pkg/client/docs/models/components/v3atlarconfig.md (1 hunks)
  • pkg/client/docs/models/components/v3bankingcircleconfig.md (1 hunks)
  • pkg/client/docs/models/components/v3columnconfig.md (1 hunks)
  • pkg/client/docs/models/components/v3currencycloudconfig.md (1 hunks)
  • pkg/client/docs/models/components/v3dummypayconfig.md (1 hunks)
  • pkg/client/docs/models/components/v3genericconfig.md (1 hunks)
  • pkg/client/docs/models/components/v3increaseconfig.md (1 hunks)
  • pkg/client/docs/models/components/v3mangopayconfig.md (1 hunks)
  • pkg/client/docs/models/components/v3modulrconfig.md (1 hunks)
  • pkg/client/docs/models/components/v3moneycorpconfig.md (1 hunks)
  • pkg/client/docs/models/components/v3plaidconfig.md (1 hunks)
  • pkg/client/docs/models/components/v3powensconfig.md (1 hunks)
  • pkg/client/docs/models/components/v3qontoconfig.md (1 hunks)
  • pkg/client/docs/models/components/v3stripeconfig.md (1 hunks)
  • pkg/client/docs/models/components/v3tinkconfig.md (1 hunks)
  • pkg/client/docs/models/components/v3wiseconfig.md (1 hunks)
  • pkg/client/models/components/v3adyenconfig.go (1 hunks)
  • pkg/client/models/components/v3atlarconfig.go (1 hunks)
  • pkg/client/models/components/v3bankingcircleconfig.go (1 hunks)
  • pkg/client/models/components/v3columnconfig.go (1 hunks)
  • pkg/client/models/components/v3currencycloudconfig.go (1 hunks)
  • pkg/client/models/components/v3dummypayconfig.go (1 hunks)
  • pkg/client/models/components/v3genericconfig.go (1 hunks)
  • pkg/client/models/components/v3increaseconfig.go (1 hunks)
  • pkg/client/models/components/v3mangopayconfig.go (1 hunks)
  • pkg/client/models/components/v3modulrconfig.go (1 hunks)
  • pkg/client/models/components/v3moneycorpconfig.go (1 hunks)
  • pkg/client/models/components/v3plaidconfig.go (1 hunks)
  • pkg/client/models/components/v3powensconfig.go (1 hunks)
  • pkg/client/models/components/v3qontoconfig.go (1 hunks)
  • pkg/client/models/components/v3stripeconfig.go (1 hunks)
  • pkg/client/models/components/v3tinkconfig.go (1 hunks)
  • pkg/client/models/components/v3wiseconfig.go (1 hunks)
  • test/e2e/api_accounts_test.go (1 hunks)
  • test/e2e/api_connectors_test.go (2 hunks)
  • tools/compile-configs/definitions.go (1 hunks)
  • tools/compile-configs/main.go (1 hunks)
✅ Files skipped from review due to trivial changes (2)
  • pkg/client/models/components/v3tinkconfig.go
  • pkg/client/models/components/v3currencycloudconfig.go
🚧 Files skipped from review as they are similar to previous changes (8)
  • pkg/client/models/components/v3columnconfig.go
  • pkg/client/models/components/v3modulrconfig.go
  • pkg/client/models/components/v3mangopayconfig.go
  • pkg/client/docs/models/components/v3qontoconfig.md
  • pkg/client/models/components/v3genericconfig.go
  • pkg/client/models/components/v3bankingcircleconfig.go
  • pkg/client/models/components/v3increaseconfig.go
  • pkg/client/models/components/v3moneycorpconfig.go
🧰 Additional context used
🧠 Learnings (2)
📚 Learning: 2024-12-12T11:00:02.458Z
Learnt from: laouji
Repo: formancehq/payments PR: 193
File: test/e2e/api_accounts_test.go:97-106
Timestamp: 2024-12-12T11:00:02.458Z
Learning: In `test/e2e/api_accounts_test.go`, the `Subscribe` function already includes error handling, so it's unnecessary to add additional error handling when calling it in tests.

Applied to files:

  • test/e2e/api_accounts_test.go
📚 Learning: 2024-12-12T12:45:27.164Z
Learnt from: laouji
Repo: formancehq/payments PR: 193
File: internal/connectors/plugins/public/dummypay/client/client.go:104-131
Timestamp: 2024-12-12T12:45:27.164Z
Learning: The `Balance` struct in `internal/connectors/plugins/public/dummypay/client/client.go` is only used in tests, so changing `AmountInMinors` from `int64` to `*big.Int` is not necessary.

Applied to files:

  • test/e2e/api_connectors_test.go
🧬 Code graph analysis (5)
tools/compile-configs/definitions.go (1)
internal/connectors/plugins/registry/configs.go (1)
  • Type (3-3)
tools/compile-configs/main.go (1)
internal/connectors/plugins/registry/configs.go (1)
  • Type (3-3)
pkg/client/models/components/v3powensconfig.go (1)
internal/connectors/plugins/sharedconfig/polling_period.go (1)
  • PollingPeriod (13-13)
test/e2e/api_connectors_test.go (3)
pkg/client/models/components/v3getconnectorconfigresponse.go (1)
  • V3GetConnectorConfigResponse (5-7)
pkg/client/models/components/v3dummypayconfig.go (1)
  • V3DummypayConfig (9-18)
internal/connectors/plugins/sharedconfig/polling_period.go (1)
  • PollingPeriod (13-13)
pkg/client/models/components/v3adyenconfig.go (1)
internal/connectors/plugins/sharedconfig/polling_period.go (1)
  • PollingPeriod (13-13)
🪛 markdownlint-cli2 (0.18.1)
pkg/client/docs/models/components/v3dummypayconfig.md

12-12: Spaces inside emphasis markers

(MD037, no-space-in-emphasis)


12-12: Spaces inside emphasis markers

(MD037, no-space-in-emphasis)

pkg/client/docs/models/components/v3atlarconfig.md

11-11: Spaces inside emphasis markers

(MD037, no-space-in-emphasis)


11-11: Spaces inside emphasis markers

(MD037, no-space-in-emphasis)

pkg/client/docs/models/components/v3modulrconfig.md

12-12: Spaces inside emphasis markers

(MD037, no-space-in-emphasis)


12-12: Spaces inside emphasis markers

(MD037, no-space-in-emphasis)

pkg/client/docs/models/components/v3currencycloudconfig.md

12-12: Spaces inside emphasis markers

(MD037, no-space-in-emphasis)


12-12: Spaces inside emphasis markers

(MD037, no-space-in-emphasis)

pkg/client/docs/models/components/v3stripeconfig.md

10-10: Spaces inside emphasis markers

(MD037, no-space-in-emphasis)


10-10: Spaces inside emphasis markers

(MD037, no-space-in-emphasis)

pkg/client/docs/models/components/v3columnconfig.md

11-11: Spaces inside emphasis markers

(MD037, no-space-in-emphasis)


11-11: Spaces inside emphasis markers

(MD037, no-space-in-emphasis)

pkg/client/docs/models/components/v3bankingcircleconfig.md

11-11: Spaces inside emphasis markers

(MD037, no-space-in-emphasis)


11-11: Spaces inside emphasis markers

(MD037, no-space-in-emphasis)

pkg/client/docs/models/components/v3adyenconfig.md

11-11: Spaces inside emphasis markers

(MD037, no-space-in-emphasis)


11-11: Spaces inside emphasis markers

(MD037, no-space-in-emphasis)

pkg/client/docs/models/components/v3genericconfig.md

11-11: Spaces inside emphasis markers

(MD037, no-space-in-emphasis)


11-11: Spaces inside emphasis markers

(MD037, no-space-in-emphasis)

pkg/client/docs/models/components/v3increaseconfig.md

11-11: Spaces inside emphasis markers

(MD037, no-space-in-emphasis)


11-11: Spaces inside emphasis markers

(MD037, no-space-in-emphasis)

pkg/client/docs/models/components/v3mangopayconfig.md

11-11: Spaces inside emphasis markers

(MD037, no-space-in-emphasis)


11-11: Spaces inside emphasis markers

(MD037, no-space-in-emphasis)

pkg/client/docs/models/components/v3moneycorpconfig.md

12-12: Spaces inside emphasis markers

(MD037, no-space-in-emphasis)


12-12: Spaces inside emphasis markers

(MD037, no-space-in-emphasis)

pkg/client/docs/models/components/v3plaidconfig.md

12-12: Spaces inside emphasis markers

(MD037, no-space-in-emphasis)


12-12: Spaces inside emphasis markers

(MD037, no-space-in-emphasis)

pkg/client/docs/models/components/v3powensconfig.md

12-12: Spaces inside emphasis markers

(MD037, no-space-in-emphasis)


12-12: Spaces inside emphasis markers

(MD037, no-space-in-emphasis)

pkg/client/docs/models/components/v3tinkconfig.md

12-12: Spaces inside emphasis markers

(MD037, no-space-in-emphasis)


12-12: Spaces inside emphasis markers

(MD037, no-space-in-emphasis)

pkg/client/docs/models/components/v3wiseconfig.md

10-10: Spaces inside emphasis markers

(MD037, no-space-in-emphasis)


10-10: Spaces inside emphasis markers

(MD037, no-space-in-emphasis)

🔇 Additional comments (9)
test/e2e/api_accounts_test.go (1)

183-183: LGTM!

Adding the explicit 10-second timeout makes this v3 test consistent with the v2 test at line 152 and the earlier Eventually block at line 130. This improves test reliability by ensuring deterministic timeout behavior.

pkg/client/models/components/v3atlarconfig.go (1)

9-18: LGTM — generated code reflects PageSize deprecation.

This file is auto-generated by Speakeasy. The deprecation comment on PageSize correctly signals that users should migrate away from this field, aligning with the PR objective to hard-code pagination per connector.

pkg/client/models/components/v3plaidconfig.go (1)

9-18: LGTM — generated code reflects PageSize deprecation.

Auto-generated by Speakeasy. The deprecation annotation on PageSize is consistent with the broader PR changes.

tools/compile-configs/definitions.go (1)

36-40: LGTM!

The Deprecated field with omitempty enables clean deprecation annotations in generated YAML schemas. This supports the broader effort to mark pageSize as deprecated without cluttering non-deprecated properties.

tools/compile-configs/main.go (1)

132-136: LGTM!

Setting Deprecated: true on the pageSize property ensures all generated V3 connector configurations will include the deprecation marker. This is the source-of-truth change that drives the deprecation annotations across all connector configs.

pkg/client/models/components/v3stripeconfig.go (1)

9-16: LGTM — generated code reflects PageSize deprecation.

Auto-generated by Speakeasy. The deprecation annotation is consistent with the other connector config files in this PR.

pkg/client/models/components/v3wiseconfig.go (1)

9-17: LGTM — generated code reflects PageSize deprecation.

Auto-generated by Speakeasy. The deprecation annotation is consistent with the other connector config files in this PR.

pkg/client/models/components/v3powensconfig.go (1)

10-20: Deprecation annotation on PageSize looks correct and non-breaking.

Using the // Deprecated: comment is idiomatic Go and keeps the field available for existing clients while signaling future removal; the surrounding fields and JSON/default tags remain unchanged, so this should be backward compatible.

test/e2e/api_connectors_test.go (1)

34-39: Test server configuration changes are purely structural and look fine

The updated testserver.Configuration literal keeps the same fields/values (stack, Postgres, Temporal, output, debug) and only affects layout/ordering, so there’s no behavior risk here for the integration tests.

Copy link
Contributor

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

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

Actionable comments posted: 4

♻️ Duplicate comments (9)
pkg/client/docs/models/components/v3stripeconfig.md (1)

10-10: Fix markdownlint MD037 violation in deprecation message.

The emphasis markers have internal spaces: ** DEPRECATED **. Update to remove spaces inside the markers per MD037 rule.

-| ~~`PageSize`~~                                                                       | **int64*                                                                             | :heavy_minus_sign:                                                                   | : warning: ** DEPRECATED **: Deprecated: From v3.1, this parameter will be ignored.. |
+| ~~`PageSize`~~                                                                       | **int64*                                                                             | :heavy_minus_sign:                                                                   | : warning: **DEPRECATED**: Deprecated: From v3.1, this parameter will be ignored..  |
pkg/client/docs/models/components/v3currencycloudconfig.md (1)

12-12: Fix markdownlint MD037 violation in deprecation message.

The emphasis markers have internal spaces: ** DEPRECATED **. Update to remove spaces inside the markers per MD037 rule.

-| ~~`PageSize`~~                                                                       | **int64*                                                                             | :heavy_minus_sign:                                                                   | : warning: ** DEPRECATED **: Deprecated: From v3.1, this parameter will be ignored.. |
+| ~~`PageSize`~~                                                                       | **int64*                                                                             | :heavy_minus_sign:                                                                   | : warning: **DEPRECATED**: Deprecated: From v3.1, this parameter will be ignored..  |
pkg/client/docs/models/components/v3moneycorpconfig.md (1)

12-12: Fix markdownlint MD037 violation in deprecation message.

The emphasis markers have internal spaces: ** DEPRECATED **. Update to remove spaces inside the markers per MD037 rule.

-| ~~`PageSize`~~                                                                       | **int64*                                                                             | :heavy_minus_sign:                                                                   | : warning: ** DEPRECATED **: Deprecated: From v3.1, this parameter will be ignored.. |
+| ~~`PageSize`~~                                                                       | **int64*                                                                             | :heavy_minus_sign:                                                                   | : warning: **DEPRECATED**: Deprecated: From v3.1, this parameter will be ignored..  |
pkg/client/docs/models/components/v3mangopayconfig.md (1)

12-12: Fix markdownlint MD037 violation in deprecation message.

The emphasis markers have internal spaces: ** DEPRECATED **. Update to remove spaces inside the markers per MD037 rule.

-| ~~`PageSize`~~                                                                       | **int64*                                                                             | :heavy_minus_sign:                                                                   | : warning: ** DEPRECATED **: Deprecated: From v3.1, this parameter will be ignored.. |
+| ~~`PageSize`~~                                                                       | **int64*                                                                             | :heavy_minus_sign:                                                                   | : warning: **DEPRECATED**: Deprecated: From v3.1, this parameter will be ignored..  |
pkg/client/docs/models/components/v3adyenconfig.md (1)

12-12: Fix markdownlint MD037 violation in deprecation message.

The emphasis markers have internal spaces: ** DEPRECATED **. Update to remove spaces inside the markers per MD037 rule.

-| ~~`PageSize`~~                                                                       | **int64*                                                                             | :heavy_minus_sign:                                                                   | : warning: ** DEPRECATED **: Deprecated: From v3.1, this parameter will be ignored.. |
+| ~~`PageSize`~~                                                                       | **int64*                                                                             | :heavy_minus_sign:                                                                   | : warning: **DEPRECATED**: Deprecated: From v3.1, this parameter will be ignored..  |
pkg/client/docs/models/components/v3plaidconfig.md (1)

12-12: Fix markdownlint MD037 violation in deprecation message.

The emphasis markers have internal spaces: ** DEPRECATED **. Update to remove spaces inside the markers per MD037 rule.

-| ~~`PageSize`~~                                                                       | **int64*                                                                             | :heavy_minus_sign:                                                                   | : warning: ** DEPRECATED **: Deprecated: From v3.1, this parameter will be ignored.. |
+| ~~`PageSize`~~                                                                       | **int64*                                                                             | :heavy_minus_sign:                                                                   | : warning: **DEPRECATED**: Deprecated: From v3.1, this parameter will be ignored..  |
pkg/client/docs/models/components/v3qontoconfig.md (1)

12-12: Fix markdownlint MD037 violation in deprecation message.

The emphasis markers have internal spaces: ** DEPRECATED **. Update to remove spaces inside the markers per MD037 rule.

-| ~~`PageSize`~~                                                                       | **int64*                                                                             | :heavy_minus_sign:                                                                   | : warning: ** DEPRECATED **: Deprecated: From v3.1, this parameter will be ignored.. |
+| ~~`PageSize`~~                                                                       | **int64*                                                                             | :heavy_minus_sign:                                                                   | : warning: **DEPRECATED**: Deprecated: From v3.1, this parameter will be ignored..  |
pkg/client/docs/models/components/v3columnconfig.md (1)

11-11: Fix markdown formatting and clarify the deprecation message (same as v3genericconfig.md).

Identical issues to v3genericconfig.md: spaces in emphasis markers, redundant wording, double period, and type syntax.

Apply this diff:

-| ~~`PageSize`~~                                                                       | **int64*                                                                             | :heavy_minus_sign:                                                                   | : warning: ** DEPRECATED **: Deprecated: From v3.1, this parameter will be ignored.. |
+| ~~`PageSize`~~                                                                       | *int64*                                                                              | :heavy_minus_sign:                                                                   | **DEPRECATED**: From v3.1, this parameter will be ignored.                           |
pkg/client/docs/models/components/v3modulrconfig.md (1)

12-12: Fix markdown formatting violations and deprecation message clarity (same as other config docs).

Same issues as v3genericconfig.md and v3columnconfig.md. The static analysis tool flags MD037 (spaces inside emphasis markers) on this line, confirming the formatting problem in ** DEPRECATED **.

Apply this diff:

-| ~~`PageSize`~~                                                                       | **int64*                                                                             | :heavy_minus_sign:                                                                   | : warning: ** DEPRECATED **: Deprecated: From v3.1, this parameter will be ignored.. |
+| ~~`PageSize`~~                                                                       | *int64*                                                                              | :heavy_minus_sign:                                                                   | **DEPRECATED**: From v3.1, this parameter will be ignored.                           |
🧹 Nitpick comments (3)
pkg/client/models/components/v3tinkconfig.go (1)

13-15: Clean up deprecation comment text for clarity

The deprecation comment has a duplicated prefix and extra punctuation:

  • Deprecated: Deprecated: ... (duplicate word)
  • Ends with ignored.. (double period)

Consider simplifying to:

-	// Deprecated: Deprecated: From v3.1, this parameter will be ignored..
+	// Deprecated: From v3.1, this parameter will be ignored.

This keeps the intent clear and matches typical Go deprecation comment style.

pkg/client/models/components/v3columnconfig.go (1)

10-13: Clean up deprecation comment wording for clarity

The deprecation comment is currently Deprecated: Deprecated: From v3.1, this parameter will be ignored.., which has a duplicated “Deprecated:” and a double period at the end. Consider simplifying to something like:

// Deprecated: From v3.1, this parameter is ignored.

Also, since this file is code-generated, ensure the change is reflected in the Speakeasy/OpenAPI generation source so it isn’t lost on the next regen.

pkg/client/docs/models/components/v3modulrconfig.md (1)

6-14: Consider addressing the template that generates these documentation files.

All three config docs (v3genericconfig.md, v3columnconfig.md, v3modulrconfig.md) have identical formatting issues in the PageSize deprecation message. If these are auto-generated from a template or tool, fixing the source template would resolve all three files at once and prevent similar issues in future documentation updates.

If you'd like, I can help identify the documentation generation tool or template and propose a fix that addresses all config docs consistently.

📜 Review details

Configuration used: CodeRabbit UI

Review profile: CHILL

Plan: Pro

Disabled knowledge base sources:

  • Linear integration is disabled by default for public repositories

You can enable these sources in your CodeRabbit configuration.

📥 Commits

Reviewing files that changed from the base of the PR and between b2d7a74 and 82ea343.

⛔ Files ignored due to path filters (3)
  • openapi.yaml is excluded by !**/*.yaml
  • openapi/v3/v3-connectors-config.yaml is excluded by !**/*.yaml
  • pkg/client/.speakeasy/gen.lock is excluded by !**/*.lock, !**/*.lock
📒 Files selected for processing (36)
  • pkg/client/docs/models/components/v3adyenconfig.md (1 hunks)
  • pkg/client/docs/models/components/v3atlarconfig.md (1 hunks)
  • pkg/client/docs/models/components/v3bankingcircleconfig.md (1 hunks)
  • pkg/client/docs/models/components/v3columnconfig.md (1 hunks)
  • pkg/client/docs/models/components/v3currencycloudconfig.md (1 hunks)
  • pkg/client/docs/models/components/v3dummypayconfig.md (1 hunks)
  • pkg/client/docs/models/components/v3genericconfig.md (1 hunks)
  • pkg/client/docs/models/components/v3increaseconfig.md (1 hunks)
  • pkg/client/docs/models/components/v3mangopayconfig.md (1 hunks)
  • pkg/client/docs/models/components/v3modulrconfig.md (1 hunks)
  • pkg/client/docs/models/components/v3moneycorpconfig.md (1 hunks)
  • pkg/client/docs/models/components/v3plaidconfig.md (1 hunks)
  • pkg/client/docs/models/components/v3powensconfig.md (1 hunks)
  • pkg/client/docs/models/components/v3qontoconfig.md (1 hunks)
  • pkg/client/docs/models/components/v3stripeconfig.md (1 hunks)
  • pkg/client/docs/models/components/v3tinkconfig.md (1 hunks)
  • pkg/client/docs/models/components/v3wiseconfig.md (1 hunks)
  • pkg/client/models/components/v3adyenconfig.go (1 hunks)
  • pkg/client/models/components/v3atlarconfig.go (1 hunks)
  • pkg/client/models/components/v3bankingcircleconfig.go (1 hunks)
  • pkg/client/models/components/v3columnconfig.go (1 hunks)
  • pkg/client/models/components/v3currencycloudconfig.go (1 hunks)
  • pkg/client/models/components/v3dummypayconfig.go (1 hunks)
  • pkg/client/models/components/v3genericconfig.go (1 hunks)
  • pkg/client/models/components/v3increaseconfig.go (1 hunks)
  • pkg/client/models/components/v3mangopayconfig.go (1 hunks)
  • pkg/client/models/components/v3modulrconfig.go (1 hunks)
  • pkg/client/models/components/v3moneycorpconfig.go (1 hunks)
  • pkg/client/models/components/v3plaidconfig.go (1 hunks)
  • pkg/client/models/components/v3powensconfig.go (1 hunks)
  • pkg/client/models/components/v3qontoconfig.go (1 hunks)
  • pkg/client/models/components/v3stripeconfig.go (1 hunks)
  • pkg/client/models/components/v3tinkconfig.go (1 hunks)
  • pkg/client/models/components/v3wiseconfig.go (1 hunks)
  • tools/compile-configs/definitions.go (1 hunks)
  • tools/compile-configs/main.go (1 hunks)
✅ Files skipped from review due to trivial changes (2)
  • pkg/client/models/components/v3atlarconfig.go
  • pkg/client/models/components/v3modulrconfig.go
🚧 Files skipped from review as they are similar to previous changes (11)
  • pkg/client/models/components/v3qontoconfig.go
  • pkg/client/docs/models/components/v3dummypayconfig.md
  • tools/compile-configs/definitions.go
  • pkg/client/models/components/v3adyenconfig.go
  • pkg/client/models/components/v3powensconfig.go
  • tools/compile-configs/main.go
  • pkg/client/models/components/v3mangopayconfig.go
  • pkg/client/models/components/v3wiseconfig.go
  • pkg/client/models/components/v3moneycorpconfig.go
  • pkg/client/models/components/v3currencycloudconfig.go
  • pkg/client/models/components/v3genericconfig.go
🧰 Additional context used
🧠 Learnings (4)
📚 Learning: 2025-08-08T13:51:12.381Z
Learnt from: paul-nicolas
Repo: formancehq/payments PR: 509
File: internal/connectors/plugins/public/powens/delete_user_connection.go:11-29
Timestamp: 2025-08-08T13:51:12.381Z
Learning: In internal/connectors/plugins/public/powens/delete_user_connection.go (validateDeleteUserConnectionRequest), prefer:
- Wording: use "bank bridge is required" (singular) instead of "bank bridge connections are required".
- Do not add whitespace/empty string checks for AccessToken.Token; the nil check on AccessToken is sufficient here.

Applied to files:

  • pkg/client/docs/models/components/v3mangopayconfig.md
📚 Learning: 2025-09-15T18:18:38.420Z
Learnt from: laouji
Repo: formancehq/payments PR: 547
File: pkg/client/models/components/v3connectorbase.go:22-27
Timestamp: 2025-09-15T18:18:38.420Z
Learning: When code is generated by tools like Speakeasy (indicated by "Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT." header), bugs should be reported to the generator rather than manually fixed in the generated output, as manual changes will be overwritten on regeneration.

Applied to files:

  • pkg/client/docs/models/components/v3atlarconfig.md
📚 Learning: 2025-03-31T13:59:49.115Z
Learnt from: laouji
Repo: formancehq/payments PR: 392
File: docs/api/README.md:910-960
Timestamp: 2025-03-31T13:59:49.115Z
Learning: Files under the `docs/` directory in the formancehq/payments repository are auto-generated and don't require code review.

Applied to files:

  • pkg/client/docs/models/components/v3atlarconfig.md
📚 Learning: 2025-02-20T20:04:35.706Z
Learnt from: gitstart-formance
Repo: formancehq/payments PR: 322
File: internal/connectors/plugins/public/increase/accounts.go:61-96
Timestamp: 2025-02-20T20:04:35.706Z
Learning: The Increase connector uses centralized constants from the client package for metadata keys (e.g., client.IncreaseTypeMetadataKey) rather than hardcoded strings.

Applied to files:

  • pkg/client/models/components/v3increaseconfig.go
🧬 Code graph analysis (2)
pkg/client/models/components/v3bankingcircleconfig.go (1)
internal/connectors/plugins/sharedconfig/polling_period.go (1)
  • PollingPeriod (13-13)
pkg/client/models/components/v3tinkconfig.go (1)
internal/connectors/plugins/public/wise/client/recipient_accounts.go (1)
  • Name (19-21)
🪛 markdownlint-cli2 (0.18.1)
pkg/client/docs/models/components/v3mangopayconfig.md

12-12: Spaces inside emphasis markers

(MD037, no-space-in-emphasis)


12-12: Spaces inside emphasis markers

(MD037, no-space-in-emphasis)

pkg/client/docs/models/components/v3atlarconfig.md

12-12: Spaces inside emphasis markers

(MD037, no-space-in-emphasis)


12-12: Spaces inside emphasis markers

(MD037, no-space-in-emphasis)

pkg/client/docs/models/components/v3wiseconfig.md

10-10: Spaces inside emphasis markers

(MD037, no-space-in-emphasis)


10-10: Spaces inside emphasis markers

(MD037, no-space-in-emphasis)

pkg/client/docs/models/components/v3moneycorpconfig.md

11-11: Spaces inside emphasis markers

(MD037, no-space-in-emphasis)


11-11: Spaces inside emphasis markers

(MD037, no-space-in-emphasis)

pkg/client/docs/models/components/v3adyenconfig.md

12-12: Spaces inside emphasis markers

(MD037, no-space-in-emphasis)


12-12: Spaces inside emphasis markers

(MD037, no-space-in-emphasis)

pkg/client/docs/models/components/v3bankingcircleconfig.md

11-11: Spaces inside emphasis markers

(MD037, no-space-in-emphasis)


11-11: Spaces inside emphasis markers

(MD037, no-space-in-emphasis)

pkg/client/docs/models/components/v3currencycloudconfig.md

12-12: Spaces inside emphasis markers

(MD037, no-space-in-emphasis)


12-12: Spaces inside emphasis markers

(MD037, no-space-in-emphasis)

pkg/client/docs/models/components/v3increaseconfig.md

11-11: Spaces inside emphasis markers

(MD037, no-space-in-emphasis)


11-11: Spaces inside emphasis markers

(MD037, no-space-in-emphasis)

pkg/client/docs/models/components/v3modulrconfig.md

12-12: Spaces inside emphasis markers

(MD037, no-space-in-emphasis)


12-12: Spaces inside emphasis markers

(MD037, no-space-in-emphasis)

pkg/client/docs/models/components/v3plaidconfig.md

11-11: Spaces inside emphasis markers

(MD037, no-space-in-emphasis)


11-11: Spaces inside emphasis markers

(MD037, no-space-in-emphasis)

pkg/client/docs/models/components/v3qontoconfig.md

11-11: Spaces inside emphasis markers

(MD037, no-space-in-emphasis)


11-11: Spaces inside emphasis markers

(MD037, no-space-in-emphasis)

pkg/client/docs/models/components/v3stripeconfig.md

10-10: Spaces inside emphasis markers

(MD037, no-space-in-emphasis)


10-10: Spaces inside emphasis markers

(MD037, no-space-in-emphasis)

pkg/client/docs/models/components/v3tinkconfig.md

12-12: Spaces inside emphasis markers

(MD037, no-space-in-emphasis)


12-12: Spaces inside emphasis markers

(MD037, no-space-in-emphasis)

🔇 Additional comments (4)
pkg/client/models/components/v3plaidconfig.go (1)

14-15: LGTM: Clean deprecation approach for backward compatibility.

The deprecation comment correctly signals that PageSize will be ignored from v3.1 while maintaining the field for backward compatibility. This approach allows older clients to continue functioning without breaking changes.

pkg/client/models/components/v3dummypayconfig.go (3)

10-12: LGTM: Field reordering is cosmetic.

The alphabetical reordering of struct fields improves consistency and is typical of code generation. No functional impact.


73-78: LGTM: Getter implementation is correct.

The getter follows the established pattern used throughout the file, properly handles nil receivers, and returns the correct type.


17-17: The new UpdateLinkFlowError field already has comprehensive test coverage and should not require additional verification.

The field is tested in test/e2e/api_connectors_test.go with explicit assertions confirming it's properly serialized and deserialized:

  • Test fixture initialization at line 576 sets the field value
  • Test assertion at line 217 validates the field is correctly returned: Expect(getRes.V3GetConnectorConfigResponse.Data.V3DummypayConfig.UpdateLinkFlowError).To(Equal(config.UpdateLinkFlowError))

Additionally, the field is actively used in production code (internal/connectors/plugins/public/dummypay/update_user_link.go), has a proper getter method, and follows the same pattern as the existing LinkFlowError field.

Type: "integer",
Default: 25,
Deprecated: true,
XSpeakeasyDeprecationMessage: "Deprecated: From v3.1, this parameter will be ignored.",
Copy link
Contributor

Choose a reason for hiding this comment

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

// Deprecated: Deprecated: From v3.1, this parameter will be ignored..

I guess you have to specifically write:
From v3.1, this parameter will be ignored

Copy link
Contributor

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

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

Actionable comments posted: 3

♻️ Duplicate comments (13)
pkg/client/docs/models/components/v3tinkconfig.md (1)

12-12: Resolve markdownlint MD037 by tightening emphasis markers around "DEPRECATED".

The deprecation note contains spaces inside the bold markers: ** DEPRECATED **. Per markdownlint rule MD037, remove the inner spaces.

-| ~~`PageSize`~~                                                           | **int64*                                                                 | :heavy_minus_sign:                                                       | : warning: ** DEPRECATED **: From v3.1, this parameter will be ignored.. |
+| ~~`PageSize`~~                                                           | **int64*                                                                 | :heavy_minus_sign:                                                       | : warning: **DEPRECATED**: From v3.1, this parameter will be ignored..  |
pkg/client/docs/models/components/v3currencycloudconfig.md (1)

12-12: Resolve markdownlint MD037 by tightening emphasis markers around "DEPRECATED".

The deprecation note contains spaces inside the bold markers: ** DEPRECATED **. Per markdownlint rule MD037, remove the inner spaces.

-| ~~`PageSize`~~                                                           | **int64*                                                                 | :heavy_minus_sign:                                                       | : warning: ** DEPRECATED **: From v3.1, this parameter will be ignored.. |
+| ~~`PageSize`~~                                                           | **int64*                                                                 | :heavy_minus_sign:                                                       | : warning: **DEPRECATED**: From v3.1, this parameter will be ignored..  |
pkg/client/docs/models/components/v3dummypayconfig.md (1)

11-11: Resolve markdownlint MD037 by tightening emphasis markers around "DEPRECATED".

The deprecation note contains spaces inside the bold markers: ** DEPRECATED **. Per markdownlint rule MD037, remove the inner spaces.

-| ~~`PageSize`~~                                                           | **int64*                                                                 | :heavy_minus_sign:                                                       | : warning: ** DEPRECATED **: From v3.1, this parameter will be ignored.. |
+| ~~`PageSize`~~                                                           | **int64*                                                                 | :heavy_minus_sign:                                                       | : warning: **DEPRECATED**: From v3.1, this parameter will be ignored..  |
pkg/client/docs/models/components/v3bankingcircleconfig.md (1)

11-11: Resolve markdownlint MD037 by tightening emphasis markers around "DEPRECATED".

The deprecation note contains spaces inside the bold markers: ** DEPRECATED **. Per markdownlint rule MD037, remove the inner spaces.

-| ~~`PageSize`~~                                                           | **int64*                                                                 | :heavy_minus_sign:                                                       | : warning: ** DEPRECATED **: From v3.1, this parameter will be ignored.. |
+| ~~`PageSize`~~                                                           | **int64*                                                                 | :heavy_minus_sign:                                                       | : warning: **DEPRECATED**: From v3.1, this parameter will be ignored..  |
pkg/client/docs/models/components/v3wiseconfig.md (1)

10-10: Resolve markdownlint MD037 by tightening emphasis markers around "DEPRECATED".

The deprecation note contains spaces inside the bold markers: ** DEPRECATED **. Per markdownlint rule MD037, remove the inner spaces.

-| ~~`PageSize`~~                                                           | **int64*                                                                 | :heavy_minus_sign:                                                       | : warning: ** DEPRECATED **: From v3.1, this parameter will be ignored.. |
+| ~~`PageSize`~~                                                           | **int64*                                                                 | :heavy_minus_sign:                                                       | : warning: **DEPRECATED**: From v3.1, this parameter will be ignored..  |
pkg/client/docs/models/components/v3increaseconfig.md (1)

11-11: Resolve markdownlint MD037 by tightening emphasis markers around "DEPRECATED".

The deprecation note contains spaces inside the bold markers: ** DEPRECATED **. Per markdownlint rule MD037, remove the inner spaces.

-| ~~`PageSize`~~                                                           | **int64*                                                                 | :heavy_minus_sign:                                                       | : warning: ** DEPRECATED **: From v3.1, this parameter will be ignored.. |
+| ~~`PageSize`~~                                                           | **int64*                                                                 | :heavy_minus_sign:                                                       | : warning: **DEPRECATED**: From v3.1, this parameter will be ignored..  |
pkg/client/docs/models/components/v3genericconfig.md (1)

11-11: Resolve markdownlint MD037 by tightening emphasis markers around "DEPRECATED".

The deprecation note contains spaces inside the bold markers: ** DEPRECATED **. Per markdownlint rule MD037, remove the inner spaces.

-| ~~`PageSize`~~                                                           | **int64*                                                                 | :heavy_minus_sign:                                                       | : warning: ** DEPRECATED **: From v3.1, this parameter will be ignored.. |
+| ~~`PageSize`~~                                                           | **int64*                                                                 | :heavy_minus_sign:                                                       | : warning: **DEPRECATED**: From v3.1, this parameter will be ignored..  |
pkg/client/docs/models/components/v3stripeconfig.md (1)

10-10: Fix markdown emphasis spacing to comply with MD037.

The deprecation text contains spaces inside emphasis markers (** DEPRECATED ** and **int64*), violating markdownlint rule MD037.

Apply this diff:

-| ~~`PageSize`~~                                                           | **int64*                                                                 | :heavy_minus_sign:                                                       | : warning: ** DEPRECATED **: From v3.1, this parameter will be ignored.. |
+| ~~`PageSize`~~                                                           | *\*int64*                                                                | :heavy_minus_sign:                                                       | :warning: **DEPRECATED**: From v3.1, this parameter will be ignored.     |
pkg/client/docs/models/components/v3mangopayconfig.md (1)

12-12: Fix markdown emphasis spacing to comply with MD037.

The deprecation text contains spaces inside emphasis markers (** DEPRECATED ** and **int64*), violating markdownlint rule MD037.

Apply this diff:

-| ~~`PageSize`~~                                                                                                          | **int64*                                                                                                                | :heavy_minus_sign:                                                                                                      | : warning: ** DEPRECATED **: From v3.1, this parameter will be ignored.. |
+| ~~`PageSize`~~                                                                                                          | *\*int64*                                                                                                               | :heavy_minus_sign:                                                                                                      | :warning: **DEPRECATED**: From v3.1, this parameter will be ignored.     |
pkg/client/docs/models/components/v3columnconfig.md (1)

11-11: Fix markdown emphasis spacing to comply with MD037.

The deprecation text contains spaces inside emphasis markers (** DEPRECATED ** and **int64*), violating markdownlint rule MD037.

Apply this diff:

-| ~~`PageSize`~~                                                           | **int64*                                                                 | :heavy_minus_sign:                                                       | : warning: ** DEPRECATED **: From v3.1, this parameter will be ignored.. |
+| ~~`PageSize`~~                                                           | *\*int64*                                                                | :heavy_minus_sign:                                                       | :warning: **DEPRECATED**: From v3.1, this parameter will be ignored.     |
pkg/client/models/components/v3increaseconfig.go (1)

13-13: Fix trailing punctuation in deprecation comment.

The deprecation comment ends with .. which appears to be a typo.

Apply this diff:

-	// Deprecated: From v3.1, this parameter will be ignored..
+	// Deprecated: From v3.1, this parameter will be ignored.
pkg/client/docs/models/components/v3qontoconfig.md (1)

12-12: Fix markdown emphasis spacing to comply with MD037.

The deprecation text contains spaces inside emphasis markers (** DEPRECATED ** and **int64*), violating markdownlint rule MD037.

Apply this diff:

-| ~~`PageSize`~~                                                           | **int64*                                                                 | :heavy_minus_sign:                                                       | : warning: ** DEPRECATED **: From v3.1, this parameter will be ignored.. |
+| ~~`PageSize`~~                                                           | *\*int64*                                                                | :heavy_minus_sign:                                                       | :warning: **DEPRECATED**: From v3.1, this parameter will be ignored.     |
pkg/client/docs/models/components/v3modulrconfig.md (1)

12-12: Fix markdown emphasis spacing to comply with MD037.

The deprecation text contains spaces inside emphasis markers (** DEPRECATED ** and **int64*), violating markdownlint rule MD037.

Apply this diff:

-| ~~`PageSize`~~                                                           | **int64*                                                                 | :heavy_minus_sign:                                                       | : warning: ** DEPRECATED **: From v3.1, this parameter will be ignored.. |
+| ~~`PageSize`~~                                                           | *\*int64*                                                                | :heavy_minus_sign:                                                       | :warning: **DEPRECATED**: From v3.1, this parameter will be ignored.     |
🧹 Nitpick comments (1)
pkg/client/models/components/v3genericconfig.go (1)

10-14: Deprecation comment and generated-code considerations for PageSize

  • The struct field re-alignment looks fine and keeps the layout clean.
  • Minor nit: the deprecation comment currently ends with a double period (ignored..). Consider fixing the punctuation:
-	// Deprecated: From v3.1, this parameter will be ignored..
+	// Deprecated: From v3.1, this parameter will be ignored.
  • Since this file is marked as generated by Speakeasy, it would be more robust to push this deprecation into the generator configuration so it doesn’t get lost on the next regen.
  • To make the deprecation more visible to Go tooling, you may also want to add a // Deprecated: doc comment on GetPageSize() so callers get IDE/compiler hints when using it.
📜 Review details

Configuration used: CodeRabbit UI

Review profile: CHILL

Plan: Pro

Disabled knowledge base sources:

  • Linear integration is disabled by default for public repositories

You can enable these sources in your CodeRabbit configuration.

📥 Commits

Reviewing files that changed from the base of the PR and between 82ea343 and 4e46dd9.

⛔ Files ignored due to path filters (3)
  • openapi.yaml is excluded by !**/*.yaml
  • openapi/v3/v3-connectors-config.yaml is excluded by !**/*.yaml
  • pkg/client/.speakeasy/gen.lock is excluded by !**/*.lock, !**/*.lock
📒 Files selected for processing (35)
  • pkg/client/docs/models/components/v3adyenconfig.md (1 hunks)
  • pkg/client/docs/models/components/v3atlarconfig.md (1 hunks)
  • pkg/client/docs/models/components/v3bankingcircleconfig.md (1 hunks)
  • pkg/client/docs/models/components/v3columnconfig.md (1 hunks)
  • pkg/client/docs/models/components/v3currencycloudconfig.md (1 hunks)
  • pkg/client/docs/models/components/v3dummypayconfig.md (1 hunks)
  • pkg/client/docs/models/components/v3genericconfig.md (1 hunks)
  • pkg/client/docs/models/components/v3increaseconfig.md (1 hunks)
  • pkg/client/docs/models/components/v3mangopayconfig.md (1 hunks)
  • pkg/client/docs/models/components/v3modulrconfig.md (1 hunks)
  • pkg/client/docs/models/components/v3moneycorpconfig.md (1 hunks)
  • pkg/client/docs/models/components/v3plaidconfig.md (1 hunks)
  • pkg/client/docs/models/components/v3powensconfig.md (1 hunks)
  • pkg/client/docs/models/components/v3qontoconfig.md (1 hunks)
  • pkg/client/docs/models/components/v3stripeconfig.md (1 hunks)
  • pkg/client/docs/models/components/v3tinkconfig.md (1 hunks)
  • pkg/client/docs/models/components/v3wiseconfig.md (1 hunks)
  • pkg/client/models/components/v3adyenconfig.go (1 hunks)
  • pkg/client/models/components/v3atlarconfig.go (1 hunks)
  • pkg/client/models/components/v3bankingcircleconfig.go (1 hunks)
  • pkg/client/models/components/v3columnconfig.go (1 hunks)
  • pkg/client/models/components/v3currencycloudconfig.go (1 hunks)
  • pkg/client/models/components/v3dummypayconfig.go (1 hunks)
  • pkg/client/models/components/v3genericconfig.go (1 hunks)
  • pkg/client/models/components/v3increaseconfig.go (1 hunks)
  • pkg/client/models/components/v3mangopayconfig.go (1 hunks)
  • pkg/client/models/components/v3modulrconfig.go (1 hunks)
  • pkg/client/models/components/v3moneycorpconfig.go (1 hunks)
  • pkg/client/models/components/v3plaidconfig.go (1 hunks)
  • pkg/client/models/components/v3powensconfig.go (1 hunks)
  • pkg/client/models/components/v3qontoconfig.go (1 hunks)
  • pkg/client/models/components/v3stripeconfig.go (1 hunks)
  • pkg/client/models/components/v3tinkconfig.go (1 hunks)
  • pkg/client/models/components/v3wiseconfig.go (1 hunks)
  • tools/compile-configs/main.go (1 hunks)
✅ Files skipped from review due to trivial changes (2)
  • pkg/client/docs/models/components/v3atlarconfig.md
  • pkg/client/docs/models/components/v3powensconfig.md
🚧 Files skipped from review as they are similar to previous changes (16)
  • pkg/client/models/components/v3wiseconfig.go
  • pkg/client/models/components/v3bankingcircleconfig.go
  • pkg/client/models/components/v3dummypayconfig.go
  • pkg/client/docs/models/components/v3plaidconfig.md
  • pkg/client/models/components/v3atlarconfig.go
  • pkg/client/models/components/v3modulrconfig.go
  • pkg/client/models/components/v3adyenconfig.go
  • pkg/client/models/components/v3tinkconfig.go
  • pkg/client/models/components/v3powensconfig.go
  • pkg/client/models/components/v3mangopayconfig.go
  • tools/compile-configs/main.go
  • pkg/client/models/components/v3plaidconfig.go
  • pkg/client/docs/models/components/v3moneycorpconfig.md
  • pkg/client/models/components/v3stripeconfig.go
  • pkg/client/models/components/v3currencycloudconfig.go
  • pkg/client/models/components/v3columnconfig.go
🧰 Additional context used
🧠 Learnings (3)
📚 Learning: 2025-08-08T13:51:12.381Z
Learnt from: paul-nicolas
Repo: formancehq/payments PR: 509
File: internal/connectors/plugins/public/powens/delete_user_connection.go:11-29
Timestamp: 2025-08-08T13:51:12.381Z
Learning: In internal/connectors/plugins/public/powens/delete_user_connection.go (validateDeleteUserConnectionRequest), prefer:
- Wording: use "bank bridge is required" (singular) instead of "bank bridge connections are required".
- Do not add whitespace/empty string checks for AccessToken.Token; the nil check on AccessToken is sufficient here.

Applied to files:

  • pkg/client/docs/models/components/v3mangopayconfig.md
  • pkg/client/docs/models/components/v3dummypayconfig.md
  • pkg/client/docs/models/components/v3bankingcircleconfig.md
📚 Learning: 2025-02-20T20:04:35.706Z
Learnt from: gitstart-formance
Repo: formancehq/payments PR: 322
File: internal/connectors/plugins/public/increase/accounts.go:61-96
Timestamp: 2025-02-20T20:04:35.706Z
Learning: The Increase connector uses centralized constants from the client package for metadata keys (e.g., client.IncreaseTypeMetadataKey) rather than hardcoded strings.

Applied to files:

  • pkg/client/models/components/v3increaseconfig.go
📚 Learning: 2025-08-08T13:46:21.578Z
Learnt from: paul-nicolas
Repo: formancehq/payments PR: 509
File: internal/connectors/plugins/public/powens/client/transactions.go:77-91
Timestamp: 2025-08-08T13:46:21.578Z
Learning: In formancehq/payments Powens client (file: internal/connectors/plugins/public/powens/client/transactions.go), keep single-layout time parsing for Transaction fields (Date: time.DateOnly, DateTime: time.RFC3339, LastUpdate: time.DateTime); no need for multi-layout fallbacks per maintainer preference (paul-nicolas) in PR #509.

Applied to files:

  • pkg/client/models/components/v3moneycorpconfig.go
🪛 markdownlint-cli2 (0.18.1)
pkg/client/docs/models/components/v3mangopayconfig.md

12-12: Spaces inside emphasis markers

(MD037, no-space-in-emphasis)


12-12: Spaces inside emphasis markers

(MD037, no-space-in-emphasis)

pkg/client/docs/models/components/v3currencycloudconfig.md

12-12: Spaces inside emphasis markers

(MD037, no-space-in-emphasis)


12-12: Spaces inside emphasis markers

(MD037, no-space-in-emphasis)

pkg/client/docs/models/components/v3stripeconfig.md

10-10: Spaces inside emphasis markers

(MD037, no-space-in-emphasis)


10-10: Spaces inside emphasis markers

(MD037, no-space-in-emphasis)

pkg/client/docs/models/components/v3adyenconfig.md

11-11: Spaces inside emphasis markers

(MD037, no-space-in-emphasis)


11-11: Spaces inside emphasis markers

(MD037, no-space-in-emphasis)

pkg/client/docs/models/components/v3bankingcircleconfig.md

11-11: Spaces inside emphasis markers

(MD037, no-space-in-emphasis)


11-11: Spaces inside emphasis markers

(MD037, no-space-in-emphasis)

pkg/client/docs/models/components/v3columnconfig.md

12-12: Spaces inside emphasis markers

(MD037, no-space-in-emphasis)


12-12: Spaces inside emphasis markers

(MD037, no-space-in-emphasis)

pkg/client/docs/models/components/v3genericconfig.md

11-11: Spaces inside emphasis markers

(MD037, no-space-in-emphasis)


11-11: Spaces inside emphasis markers

(MD037, no-space-in-emphasis)

pkg/client/docs/models/components/v3increaseconfig.md

12-12: Spaces inside emphasis markers

(MD037, no-space-in-emphasis)


12-12: Spaces inside emphasis markers

(MD037, no-space-in-emphasis)

pkg/client/docs/models/components/v3qontoconfig.md

12-12: Spaces inside emphasis markers

(MD037, no-space-in-emphasis)


12-12: Spaces inside emphasis markers

(MD037, no-space-in-emphasis)

pkg/client/docs/models/components/v3wiseconfig.md

10-10: Spaces inside emphasis markers

(MD037, no-space-in-emphasis)


10-10: Spaces inside emphasis markers

(MD037, no-space-in-emphasis)

🔇 Additional comments (4)
pkg/client/models/components/v3qontoconfig.go (1)

1-1: The deprecation comment is part of the Speakeasy generation template, not a manual edit.

The identical deprecation message (// Deprecated: From v3.1, this parameter will be ignored..) appears in 17 other v3 connector config files in the same format. This is consistently generated by Speakeasy across all connector configurations, so the changes are sustainable and will persist across regenerations. The original concern about manual edits being overwritten does not apply here.

Note: The double period (..) in the deprecation message is consistent across all generated v3 config files and appears to be intentional.

pkg/client/models/components/v3moneycorpconfig.go (3)

10-13: LGTM!

The field alignment improves readability without changing functionality.


15-15: LGTM!

The PageSize field is retained with its default value for backward compatibility with older Console clients, as mentioned in the PR comments. The service will ignore this parameter when provided, and the deprecation comment on line 14 appropriately signals this change.


59-64: LGTM!

The GetPageSize() method is retained for backward compatibility, consistent with keeping the PageSize field in the struct.

Copy link
Contributor

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

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

Actionable comments posted: 5

♻️ Duplicate comments (4)
pkg/client/docs/models/components/v3dummypayconfig.md (1)

11-11: Remove spaces inside bold emphasis markers.

The deprecation text uses ** DEPRECATED ** which triggers markdownlint MD037. This was already flagged in a previous review.

Apply this diff:

-| ~~`PageSize`~~                                                          | **int64*                                                                | :heavy_minus_sign:                                                      | : warning: ** DEPRECATED **: From v3.1, this parameter will be ignored. |
+| ~~`PageSize`~~                                                          | **int64*                                                                | :heavy_minus_sign:                                                      | :warning: **DEPRECATED**: From v3.1, this parameter will be ignored. |
pkg/client/docs/models/components/v3tinkconfig.md (1)

12-12: Remove spaces inside bold emphasis markers.

The deprecation text uses ** DEPRECATED ** which triggers markdownlint MD037. This was already flagged in a previous review.

Apply this diff:

-| ~~`PageSize`~~                                                          | **int64*                                                                | :heavy_minus_sign:                                                      | : warning: ** DEPRECATED **: From v3.1, this parameter will be ignored. |
+| ~~`PageSize`~~                                                          | **int64*                                                                | :heavy_minus_sign:                                                      | :warning: **DEPRECATED**: From v3.1, this parameter will be ignored. |
pkg/client/docs/models/components/v3wiseconfig.md (1)

10-10: Remove spaces inside bold emphasis markers.

The deprecation text uses ** DEPRECATED ** which triggers markdownlint MD037. This was already flagged in a previous review.

Apply this diff:

-| ~~`PageSize`~~                                                          | **int64*                                                                | :heavy_minus_sign:                                                      | : warning: ** DEPRECATED **: From v3.1, this parameter will be ignored. |
+| ~~`PageSize`~~                                                          | **int64*                                                                | :heavy_minus_sign:                                                      | :warning: **DEPRECATED**: From v3.1, this parameter will be ignored. |
pkg/client/docs/models/components/v3mangopayconfig.md (1)

12-12: Remove spaces inside bold emphasis markers.

The deprecation text uses ** DEPRECATED ** which triggers markdownlint MD037. This was already flagged in a previous review.

Apply this diff:

-| ~~`PageSize`~~                                                          | **int64*                                                                | :heavy_minus_sign:                                                      | : warning: ** DEPRECATED **: From v3.1, this parameter will be ignored. |
+| ~~`PageSize`~~                                                          | **int64*                                                                | :heavy_minus_sign:                                                      | :warning: **DEPRECATED**: From v3.1, this parameter will be ignored. |
📜 Review details

Configuration used: CodeRabbit UI

Review profile: CHILL

Plan: Pro

Disabled knowledge base sources:

  • Linear integration is disabled by default for public repositories

You can enable these sources in your CodeRabbit configuration.

📥 Commits

Reviewing files that changed from the base of the PR and between 4e46dd9 and 59ac1b1.

⛔ Files ignored due to path filters (3)
  • openapi.yaml is excluded by !**/*.yaml
  • openapi/v3/v3-connectors-config.yaml is excluded by !**/*.yaml
  • pkg/client/.speakeasy/gen.lock is excluded by !**/*.lock, !**/*.lock
📒 Files selected for processing (35)
  • pkg/client/docs/models/components/v3adyenconfig.md (1 hunks)
  • pkg/client/docs/models/components/v3atlarconfig.md (1 hunks)
  • pkg/client/docs/models/components/v3bankingcircleconfig.md (1 hunks)
  • pkg/client/docs/models/components/v3columnconfig.md (1 hunks)
  • pkg/client/docs/models/components/v3currencycloudconfig.md (1 hunks)
  • pkg/client/docs/models/components/v3dummypayconfig.md (1 hunks)
  • pkg/client/docs/models/components/v3genericconfig.md (1 hunks)
  • pkg/client/docs/models/components/v3increaseconfig.md (1 hunks)
  • pkg/client/docs/models/components/v3mangopayconfig.md (1 hunks)
  • pkg/client/docs/models/components/v3modulrconfig.md (1 hunks)
  • pkg/client/docs/models/components/v3moneycorpconfig.md (1 hunks)
  • pkg/client/docs/models/components/v3plaidconfig.md (1 hunks)
  • pkg/client/docs/models/components/v3powensconfig.md (1 hunks)
  • pkg/client/docs/models/components/v3qontoconfig.md (1 hunks)
  • pkg/client/docs/models/components/v3stripeconfig.md (1 hunks)
  • pkg/client/docs/models/components/v3tinkconfig.md (1 hunks)
  • pkg/client/docs/models/components/v3wiseconfig.md (1 hunks)
  • pkg/client/models/components/v3adyenconfig.go (1 hunks)
  • pkg/client/models/components/v3atlarconfig.go (1 hunks)
  • pkg/client/models/components/v3bankingcircleconfig.go (1 hunks)
  • pkg/client/models/components/v3columnconfig.go (1 hunks)
  • pkg/client/models/components/v3currencycloudconfig.go (1 hunks)
  • pkg/client/models/components/v3dummypayconfig.go (1 hunks)
  • pkg/client/models/components/v3genericconfig.go (1 hunks)
  • pkg/client/models/components/v3increaseconfig.go (1 hunks)
  • pkg/client/models/components/v3mangopayconfig.go (1 hunks)
  • pkg/client/models/components/v3modulrconfig.go (1 hunks)
  • pkg/client/models/components/v3moneycorpconfig.go (1 hunks)
  • pkg/client/models/components/v3plaidconfig.go (1 hunks)
  • pkg/client/models/components/v3powensconfig.go (1 hunks)
  • pkg/client/models/components/v3qontoconfig.go (1 hunks)
  • pkg/client/models/components/v3stripeconfig.go (1 hunks)
  • pkg/client/models/components/v3tinkconfig.go (1 hunks)
  • pkg/client/models/components/v3wiseconfig.go (1 hunks)
  • tools/compile-configs/main.go (1 hunks)
✅ Files skipped from review due to trivial changes (1)
  • pkg/client/models/components/v3moneycorpconfig.go
🚧 Files skipped from review as they are similar to previous changes (12)
  • pkg/client/models/components/v3plaidconfig.go
  • pkg/client/docs/models/components/v3powensconfig.md
  • pkg/client/models/components/v3atlarconfig.go
  • pkg/client/models/components/v3dummypayconfig.go
  • pkg/client/models/components/v3genericconfig.go
  • pkg/client/models/components/v3powensconfig.go
  • pkg/client/models/components/v3adyenconfig.go
  • pkg/client/docs/models/components/v3stripeconfig.md
  • pkg/client/models/components/v3wiseconfig.go
  • pkg/client/models/components/v3columnconfig.go
  • pkg/client/models/components/v3stripeconfig.go
  • pkg/client/models/components/v3qontoconfig.go
🧰 Additional context used
🧠 Learnings (5)
📚 Learning: 2025-08-08T13:46:21.578Z
Learnt from: paul-nicolas
Repo: formancehq/payments PR: 509
File: internal/connectors/plugins/public/powens/client/transactions.go:77-91
Timestamp: 2025-08-08T13:46:21.578Z
Learning: In formancehq/payments Powens client (file: internal/connectors/plugins/public/powens/client/transactions.go), keep single-layout time parsing for Transaction fields (Date: time.DateOnly, DateTime: time.RFC3339, LastUpdate: time.DateTime); no need for multi-layout fallbacks per maintainer preference (paul-nicolas) in PR #509.

Applied to files:

  • pkg/client/models/components/v3mangopayconfig.go
📚 Learning: 2025-02-20T20:04:35.706Z
Learnt from: gitstart-formance
Repo: formancehq/payments PR: 322
File: internal/connectors/plugins/public/increase/accounts.go:61-96
Timestamp: 2025-02-20T20:04:35.706Z
Learning: The Increase connector uses centralized constants from the client package for metadata keys (e.g., client.IncreaseTypeMetadataKey) rather than hardcoded strings.

Applied to files:

  • pkg/client/models/components/v3increaseconfig.go
📚 Learning: 2025-08-08T13:51:12.381Z
Learnt from: paul-nicolas
Repo: formancehq/payments PR: 509
File: internal/connectors/plugins/public/powens/delete_user_connection.go:11-29
Timestamp: 2025-08-08T13:51:12.381Z
Learning: In internal/connectors/plugins/public/powens/delete_user_connection.go (validateDeleteUserConnectionRequest), prefer:
- Wording: use "bank bridge is required" (singular) instead of "bank bridge connections are required".
- Do not add whitespace/empty string checks for AccessToken.Token; the nil check on AccessToken is sufficient here.

Applied to files:

  • pkg/client/docs/models/components/v3bankingcircleconfig.md
  • pkg/client/docs/models/components/v3dummypayconfig.md
  • pkg/client/docs/models/components/v3mangopayconfig.md
📚 Learning: 2025-09-15T18:18:38.420Z
Learnt from: laouji
Repo: formancehq/payments PR: 547
File: pkg/client/models/components/v3connectorbase.go:22-27
Timestamp: 2025-09-15T18:18:38.420Z
Learning: When code is generated by tools like Speakeasy (indicated by "Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT." header), bugs should be reported to the generator rather than manually fixed in the generated output, as manual changes will be overwritten on regeneration.

Applied to files:

  • pkg/client/docs/models/components/v3atlarconfig.md
📚 Learning: 2025-03-31T13:59:49.115Z
Learnt from: laouji
Repo: formancehq/payments PR: 392
File: docs/api/README.md:910-960
Timestamp: 2025-03-31T13:59:49.115Z
Learning: Files under the `docs/` directory in the formancehq/payments repository are auto-generated and don't require code review.

Applied to files:

  • pkg/client/docs/models/components/v3atlarconfig.md
🧬 Code graph analysis (2)
pkg/client/models/components/v3bankingcircleconfig.go (1)
internal/connectors/plugins/sharedconfig/polling_period.go (1)
  • PollingPeriod (13-13)
tools/compile-configs/main.go (1)
internal/connectors/plugins/registry/configs.go (1)
  • Type (3-3)
🪛 markdownlint-cli2 (0.18.1)
pkg/client/docs/models/components/v3plaidconfig.md

12-12: Spaces inside emphasis markers

(MD037, no-space-in-emphasis)


12-12: Spaces inside emphasis markers

(MD037, no-space-in-emphasis)

pkg/client/docs/models/components/v3modulrconfig.md

12-12: Spaces inside emphasis markers

(MD037, no-space-in-emphasis)


12-12: Spaces inside emphasis markers

(MD037, no-space-in-emphasis)

pkg/client/docs/models/components/v3atlarconfig.md

12-12: Spaces inside emphasis markers

(MD037, no-space-in-emphasis)


12-12: Spaces inside emphasis markers

(MD037, no-space-in-emphasis)

pkg/client/docs/models/components/v3currencycloudconfig.md

12-12: Spaces inside emphasis markers

(MD037, no-space-in-emphasis)


12-12: Spaces inside emphasis markers

(MD037, no-space-in-emphasis)

pkg/client/docs/models/components/v3dummypayconfig.md

12-12: Spaces inside emphasis markers

(MD037, no-space-in-emphasis)


12-12: Spaces inside emphasis markers

(MD037, no-space-in-emphasis)

pkg/client/docs/models/components/v3increaseconfig.md

11-11: Spaces inside emphasis markers

(MD037, no-space-in-emphasis)


11-11: Spaces inside emphasis markers

(MD037, no-space-in-emphasis)

pkg/client/docs/models/components/v3mangopayconfig.md

12-12: Spaces inside emphasis markers

(MD037, no-space-in-emphasis)


12-12: Spaces inside emphasis markers

(MD037, no-space-in-emphasis)

pkg/client/docs/models/components/v3moneycorpconfig.md

12-12: Spaces inside emphasis markers

(MD037, no-space-in-emphasis)


12-12: Spaces inside emphasis markers

(MD037, no-space-in-emphasis)

pkg/client/docs/models/components/v3qontoconfig.md

11-11: Spaces inside emphasis markers

(MD037, no-space-in-emphasis)


11-11: Spaces inside emphasis markers

(MD037, no-space-in-emphasis)

pkg/client/docs/models/components/v3tinkconfig.md

12-12: Spaces inside emphasis markers

(MD037, no-space-in-emphasis)


12-12: Spaces inside emphasis markers

(MD037, no-space-in-emphasis)

pkg/client/docs/models/components/v3wiseconfig.md

10-10: Spaces inside emphasis markers

(MD037, no-space-in-emphasis)


10-10: Spaces inside emphasis markers

(MD037, no-space-in-emphasis)

🔇 Additional comments (13)
pkg/client/models/components/v3tinkconfig.go (1)

10-15: LGTM! Deprecation properly documented.

The deprecation comment correctly signals that PageSize will be ignored from v3.1 while maintaining backward compatibility by keeping the field present.

pkg/client/models/components/v3mangopayconfig.go (1)

10-15: LGTM! Deprecation properly documented.

The deprecation comment correctly signals that PageSize will be ignored from v3.1 while maintaining backward compatibility by keeping the field present.

pkg/client/models/components/v3currencycloudconfig.go (1)

10-18: LGTM! PageSize deprecation implemented correctly.

The deprecation comment is clear and follows Go conventions. The field is appropriately kept for backward compatibility while signaling to SDK users that it will be ignored from v3.1 onward.

pkg/client/docs/models/components/v3genericconfig.md (1)

6-13: PageSize deprecation correctly documented.

The table appropriately marks PageSize as deprecated and communicates that it will be ignored from v3.1. Since this file is auto-generated by Speakeasy, any formatting issues should be addressed in the generator template if needed.

pkg/client/models/components/v3increaseconfig.go (1)

10-18: LGTM! Deprecation properly documented.

The deprecation comment is clear and correctly formatted. The default:"25" tag is retained, which is appropriate for SDK generation and tooling compatibility even though the value will be ignored by the service.

pkg/client/models/components/v3bankingcircleconfig.go (1)

10-21: LGTM! Consistent deprecation implementation.

The deprecation is implemented consistently with other connector configs. The comment clearly communicates that PageSize will be ignored from v3.1 while maintaining backward compatibility.

pkg/client/docs/models/components/v3increaseconfig.md (1)

6-14: Deprecation correctly documented in SDK docs.

The table appropriately marks PageSize as deprecated and strikes it through to signal its future removal. Since this is auto-generated by Speakeasy, the formatting is handled by the generator template.

pkg/client/docs/models/components/v3bankingcircleconfig.md (1)

6-17: PageSize deprecation properly documented.

The documentation correctly marks PageSize as deprecated and communicates that it will be ignored from v3.1, maintaining consistency with the code changes.

pkg/client/docs/models/components/v3atlarconfig.md (1)

6-14: Deprecation correctly documented for Atlar config.

The PageSize field is appropriately marked as deprecated with strikethrough, consistent with the deprecation strategy across all connector configs.

pkg/client/docs/models/components/v3adyenconfig.md (1)

6-16: LGTM! Adyen config deprecation properly documented.

The PageSize deprecation is correctly documented and consistent with the broader changes across all connector configurations.

pkg/client/docs/models/components/v3columnconfig.md (1)

6-13: LGTM! Clear deprecation documentation.

The PageSize field is appropriately marked as deprecated with strikethrough formatting and a clear warning message. The table formatting is clean and consistent.

pkg/client/models/components/v3modulrconfig.go (1)

10-15: LGTM! Proper deprecation comment added.

The deprecation comment correctly follows Go conventions and the PageSize field is appropriately retained for backward compatibility. The formatting alignment of struct tags is also improved.

Note: This is generated code (Speakeasy), so ensure the deprecation comment is preserved if the file is regenerated.

tools/compile-configs/main.go (1)

132-137: Deprecation metadata for pageSize is correctly applied and preserved

The Deprecated: true and XSpeakeasyDeprecationMessage: "From v3.1, this parameter will be ignored" are properly configured and will surface in the generated schema.

The concern about struct fields with json:"pageSize" overriding the static entry does not apply here: the actual config.go files being scanned by this tool (in internal/connectors/plugins/public/*/config.go) do not contain pageSize struct fields. The deprecation metadata will not be overwritten.

@fguery fguery added this pull request to the merge queue Nov 26, 2025
Merged via the queue into main with commit da9d9db Nov 26, 2025
6 of 8 checks passed
@fguery fguery deleted the EN-420_change_default_pagination branch November 26, 2025 11:12
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.

4 participants