Release Notes Through 2026-07-31
Borrower Experience v2.90.0 // Ardley Service v1.108.8
Maestro
- Add loan number lookup to Audience All Profiles tab
- Create from Template
- Updated Email Analytic Events Pipeline to pass Journey ID and Journey Name through to Athena/QuickSight
- Patch: Enhanced `PinPointHelper` to include `LoanId` in analytics event attributes and modified logic to derive `offerUsageType` and `loanId` from `LoanApplication`. Added `LOAN_ID` to event attributes enum
- Journey Participants — Start-Entry Fields & Filters
- Audience page with tabbed navigation and journey filters
- Fixed delete for orphaned nodes
- Allow disabling send email
- Implement audience tab APIs and filtering
- Allowed email nodes to be opened in read only
- Allow nodes to be renamed
- Use correct name when coming from Platform
- Maestro email send endpoint - update to handle unregister borrowers and add a lenient mode
- Treat a missing candidate as empty walk history in `enteredStateAt`
- Added `dynamodb:DeleteItem` permission to ardleyEdgeLambdaRole to allow Maestro journey candidates to be cleaned up after entry limits are exceeded
- Updated the SES event tagging for Maestro events to omit loan application ID and loan ID if not provided in the tag data
- Modified the maestroJourneyHandlerEventSourceMapping resource in ardley-service.json to allow unbounded concurrency. Originally removed as the value set was outside the max value
- Add EMAIL_SEND_QUEUE_URL to maestro-journey-handler lambda
- Walk an ACTIVE journey candidate only on its wakeup
- Stamp a routable type discriminator on every Maestro queue message
Platform
- Updated Email Analytic Events Pipeline to pass Journey ID and Journey Name through to Athena/QuickSight
- Updated analytics events to insert the loan ID from a matching loan application if the event has an offer_collection_id
- Updated the report column parsing for control files to use LocalDateTime instead of LocalDate
- Fix potential NPE in `getMembership` and ensure default role for legacy users in report generation
- Updated analytics event SQL query to do tenant/customer ID checks at the LEFT JOIN level -- Fixing any data that might have an offer collection ID that isn't associated with a known loan application
- Uniform per-resource scope for seeded default roles
- Start the entrant window on the first admission
Infrastructure
- Fix MLS new listing event detection logic
- Updated QS client and historical client datasets
- Updated the report generator to take an AnalyticsUsers data source that produces a CSV of users currently in QuickSight
- Add a now clock helper and a short date-pattern alias to TemplateExpander
- Added `borrower_email` as the fallback for primary_borrower_email if the loan application CID isn't included in the event (some MLS email events)
- Updated all lambda log4j2.xml files to use a Sentry appender to capture any errors in our centralized reporting tool
- Updated all batch "CLI" tools to integrate with Sentry
- Update Elastic Beanstalk instance size and memory allocati\n\n
- Return report job configuration from list and status endpoints
- Fix CloudFormation circular dependency on presign role