Skip to content

Log cache and Telemetry accept Consumer Scopes + API Metrics record Domain API URL - #2933

Merged
simonredfern merged 17 commits into
OpenBankProject:developfrom
simonredfern:develop
Oct 6, 2026
Merged

simonredfern merged 17 commits into
OpenBankProject:developfrom
simonredfern:develop

Conversation

@simonredfern

Copy link
Copy Markdown
Member

No description provided.

used under a Domain API, before it was rewritten to the OBP  URL kept in
url; empty for other calls. Stored in metric and metricarchive, returned
by v6.0.0 GET /management/metrics, carried on the metrics gRPC stream
(MetricEvent field 23), and filterable with domain_api_url (starts
with). Fix: the metric list now applies the documented
consent_reference_id and certificate_trust filters, which were silently
ignored. Tests: DomainApisTest (metric rows of Domain API calls),
MetricEventFieldsTest (field 23), MetricFilterParamsTest.
- A test's flush() could find the queue just drained by the background
scheduler and return before those rows were inserted, so DomainApisTest
(CI shard 6) saw no metric rows. flush() is now synchronized.

  Requests are unaffected: they only enqueue, which takes no lock. In
  the server only the scheduler thread calls flush(), so the lock is
  uncontended.
  The test props set write_metrics=false, so the Domain API calls in
  "a Dynamic Entity and a Dynamic Query answer under the base path..."
  wrote no metric rows and the domain_api_url query returned an empty
  list
  They were resent for ever and only logged at WARN. After
  open_corridor.outbox_max_attempts (default 144, about a day) the row
  goes STICKY for operator reconciliation and is logged at ERROR.
  Test: OpenCorridorOutboxRetryLimitTest. (sentinel_found)
  http4s gives a key with no '=' an empty value list, so the join was
  silently ignored. It is now a join with no predicate, the same as
  obp_exists[X]=. Test: JoinQuerySpec.
Asset tables seeded at boot (ISO codes + XBT, ADA, ETH at today's
decimal places). v7.0.0 GET /assets, /assets/ASSET_CODE and
/assets/chain/CHAIN_SCHEME/CHAIN_ASSET_ID. isValidCurrencyISOCode and
currencyDecimalPlaces now read the registry; answers unchanged except
that ADA is accepted as well as ada. Tests: AssetSeedTest,
AssetLookupTest, AssetsEndpointTest.
A key with no '=' arrived with no values and was dropped. It is now a
join with no predicate. Test: JoinQuerySpec.

+ feature Files.
UserReferenceAttributionPolicyTest failed shard 8 on nine new columns.
AssetStatusHistory.ChangedByUserId is audit; the rest record the human
and are listed as not yet wired until their endpoints exist.
ignoring case. Improves the DAuth check in ApiSession and the
limit/offset filter in Http4s510 that still compared exactly.
HeaderLookupConventionsTest fails the build on a direct header name
comparison; ConsentHeaderDispatchTest checks that the request path, not
the letter case of Consent-Id / Consent-ID, picks OBP or Berlin Group
consent rules.
@sonarqubecloud

sonarqubecloud Bot commented Oct 6, 2026

Copy link
Copy Markdown

@simonredfern
simonredfern merged commit 78406d7 into OpenBankProject:develop Oct 6, 2026
13 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.

1 participant