Skip to content

docs: document the props added in #2881, #2882 and #2883 - #89

Merged
hongwei1 merged 1 commit into
develop-obpfrom
docs/props-and-release-notes
Aug 14, 2026
Merged

docs: document the props added in #2881, #2882 and #2883#89
hongwei1 merged 1 commit into
develop-obpfrom
docs/props-and-release-notes

Conversation

@hongwei1

@hongwei1 hongwei1 commented Aug 14, 2026

Copy link
Copy Markdown
Owner

Documentation only — no source or test changes.

Audited every props key introduced by upstream OpenBankProject#2881, OpenBankProject#2882, OpenBankProject#2883 and OpenBankProject#2884 against sample.props.template and release_notes.md. Scoped strictly to keys those four PRs introduced, verified by tracing each key's first-introducing commit and checking its membership in the PR's commit list.

key introduced by was in template was in release notes
sca_front_end_consumer_ids OpenBankProject#2881 yes no
berlin_group_sca_front_end_consumer_ids OpenBankProject#2881 yes no
system_views.reconcile_permissions_at_boot OpenBankProject#2881 yes no
uk_open_banking_expired_consents_interval_in_seconds OpenBankProject#2881 no no
consent_allow_legacy_unrecorded_tpp OpenBankProject#2882 yes no
open_corridor.platform_bank_id OpenBankProject#2883 no no

OpenBankProject#2884 introduced no new props.

The behaviour change worth calling out

OpenBankProject#2882 made a consent resolve against the Consumer that lodged it. Previously a PSU match ended the enquiry before the Consumer was ever compared, so a second TPP holding a session for the same PSU could read and revoke a consent the first TPP had lodged. Removing that short circuit makes sca_front_end_consumer_ids required for every Berlin Group Redirect deployment — under Redirect the PSU authenticates at the ASPSP, so the authorisation calls arrive from the ASPSP's own front end, never from the lodging TPP.

Without the declaration, POST /berlin-group/v1.3/consents/{consentId}/authorisations returns 403 OBP-35015 and the consent stays at received, with nothing in the response pointing at configuration. Reproduced and confirmed against a local stack (Portal as the SCA screen, Hola as the TPP).

The entry also records two things that cost real debugging time:

  • APIUtil.scaFrontEndConsumerIds is a val read at class initialisation and props are packaged inside obp-api.jar, so the change needs a rebuild, not a restart — a plain restart silently keeps the old value.
  • system_views.reconcile_permissions_at_boot defaults to true, and that default rewrites data: hand-tuned UK/Berlin Group system view permissions are reconciled to the build's set at every boot.

Also covered: consent_allow_legacy_unrecorded_tpp (OpenBankProject#2882) as a migration window, not a setting.

Deliberately out of scope

The other Open Corridor keys — open_corridor_enabled, .outbox_relay_interval, .publish_response_timeout, .settlement_system — are undocumented too, but they arrived before OpenBankProject#2883 (commits 565cc266b / 022c5e63c), so they are left for a separate change. Same for roughly 60 older keys absent from the template.

Risk

sample.props.template is not test-guarded (WebUiPropsTest only mentions it in a comment) and no .scala file is touched, so this carries no behavioural risk.

…ct#2882 and OpenBankProject#2883

Every props key those PRs introduced was reachable only by reading the source.
Two gaps, and the second is the one that bites.

sample.props.template was missing two keys:
uk_open_banking_expired_consents_interval_in_seconds (OpenBankProject#2881), which unlike its
berlin_group_ and obp_ counterparts has a default and runs unless set to 0; and
open_corridor.platform_bank_id (OpenBankProject#2883), which has no usable default.

release_notes.md had no entry for any of this line of work, including a
behaviour change operators cannot discover from the symptom. OpenBankProject#2882 made a
consent resolve against the Consumer that lodged it; previously a PSU match
ended the enquiry before the Consumer was compared, so a second TPP holding a
session for the same PSU could read and revoke a consent the first TPP had
lodged. Removing that short circuit makes sca_front_end_consumer_ids required
for every Berlin Group Redirect deployment, because under Redirect the PSU
authenticates at the ASPSP and the authorisation calls arrive from the ASPSP's
own front end rather than the lodging TPP. An instance that has not declared
its front end now gets 403 OBP-35015 on
POST /berlin-group/v1.3/consents/{consentId}/authorisations, with nothing in
the response pointing at configuration. Confirmed against a local stack.

The entry also records that the props is read into a val at class
initialisation and packaged inside obp-api.jar, so the change needs a rebuild
rather than a restart, and that system_views.reconcile_permissions_at_boot
defaults to true and therefore rewrites hand-tuned system view permissions at
every boot.

Scoped to the keys these PRs introduced. The other Open Corridor keys
(open_corridor_enabled, .outbox_relay_interval, .publish_response_timeout,
.settlement_system) are undocumented too but arrived before OpenBankProject#2883, so they are
left for a separate change.

Documentation only -- no source or test changes.
@hongwei1
hongwei1 force-pushed the docs/props-and-release-notes branch from 77d0cbd to 13a0651 Compare August 14, 2026 10:42
@sonarqubecloud

Copy link
Copy Markdown

@hongwei1
hongwei1 merged commit 855e373 into develop-obp Aug 14, 2026
25 checks passed
@hongwei1
hongwei1 deleted the docs/props-and-release-notes branch August 14, 2026 15: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.

1 participant