Skip to content

Retire legacy ImporterAPI bulk-transaction endpoint#2799

Merged
simonredfern merged 3 commits into
OpenBankProject:developfrom
constantine2nd:develop
May 21, 2026
Merged

Retire legacy ImporterAPI bulk-transaction endpoint#2799
simonredfern merged 3 commits into
OpenBankProject:developfrom
constantine2nd:develop

Conversation

@constantine2nd
Copy link
Copy Markdown
Contributor

No description provided.

The `POST /obp_transactions_saver/api/transactions` shared-secret endpoint
was a pre-OBP-API mechanism for an external "transactions saver" cron job
to bulk-insert bank transactions. It bypassed transaction-request
validation entirely, used a LiftActor for sequencing, and predates the
modern connector-driven and `/obp/vX.X.X/transaction-requests/...` flows
that subsume it.

Removed:
  - code.management.ImporterAPI — Lift dispatch handler + JSON case
    classes (ImporterTransaction, TransactionsToInsert, etc.)
  - code.management.ImporterAPIRoutes — its http4s replacement
  - code.management.TransactionInserter — LiftActor that did the
    duplicate-detect + insert work
  - code.management.ImporterTest — 8-scenario test suite
  - LocalMappedConnectorInternal: getMatchingTransactionCount,
    createImportedTransaction, updateAccountBalance,
    setBankAccountLastUpdated, and the getBankByNationalIdentifier
    / getAccountByNumber / bigDecimalFailureHandler private helpers
    that only existed to serve those methods (all explicitly commented
    as "used by transaction import api")
  - importer_secret prop from sample.props.template + test.default.props.template
  - importer_secret=change_me echo from both GitHub Actions workflows
  - ImporterAPIRoutes from Http4sApp.baseServices chain
  - stale ImporterAPI references in Boot.scala comments and
    LIFT_HTTP4S_MIGRATION.md

If you have an external script POSTing to
/obp_transactions_saver/api/transactions, migrate it to a connector
(Kafka / rest_v*) or the /obp/vX.X.X/transaction-requests/... endpoints
before deploying this commit.

Net -959 lines.
Read-only script that parses ResourceDoc(...) blocks from each version's
APIMethods*.scala (Lift, source of truth) and Http4s*.scala, matches by
endpoint name, and reports field-level diffs (summary, description,
exampleRequestBody, successResponseBody, errorResponseBodies, tags, URL,
verb). Handles fully-commented Lift files (v5.0.0/v5.1.0/v6.0.0) by
stripping leading // before parsing.

Initial run flags 725/944 endpoints diverging from Lift — most notably
v6.0.0 (240/241), where http4s ResourceDocs lose example bodies and
trim descriptions.
@sonarqubecloud
Copy link
Copy Markdown

Quality Gate Failed Quality Gate failed

Failed conditions
2 Security Hotspots

See analysis details on SonarQube Cloud

@simonredfern simonredfern merged commit 2eee89a into OpenBankProject:develop May 21, 2026
6 of 7 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants