Skip to content

Conversation

@andrade0
Copy link
Contributor

@andrade0 andrade0 commented Feb 4, 2026


What does this change?

Adds the boilerplate infrastructure for a new imovo-rewards Lambda handler. This sets up everything needed so we can start building the Imovo rewards feature on top
of it.

Changes include:

  • CDK stack (ImovoRewards) using SrApiLambda with API Gateway, DNS, monitoring and alarms
  • Handler scaffolding with a Hello World endpoint, unit test and integration test placeholder
  • Buildcheck configuration (jest, tsconfig, package.json, riff-raff.yaml)
  • CI pipeline entry in ci-typescript.yml
  • Registration in cdk/bin/cdk.ts and buildcheck/data/build.ts

How has this change been tested?

  • All CI checks pass (buildcheck, type-check, eslint, prettier, jest, CDK synth)
  • Successfully deployed to CODE via RiffRaff (after seeding the initial S3 artifact)
  • The Lambda responds with a 200 Hello World message

How can we measure success?

The Lambda is deployed and reachable in CODE. CloudWatch logs show successful invocations. This is scaffolding only -- real success metrics will come with the actual
feature implementation.

Have we considered potential risks?

Minimal risk. This is a new standalone stack with no impact on existing handlers. The Hello World handler has no external dependencies or access to sensitive data.


@andrade0 andrade0 added the feature Departmental tracking: work on a new feature label Feb 4, 2026
nameSuffix: 'consumer',
queueNameSuffix: `events`,
lambdaOverrides: {
description: 'A lambda that handles stripe disputes SQS events',
Copy link
Member

Choose a reason for hiding this comment

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

Suggested change
description: 'A lambda that handles stripe disputes SQS events',
description: 'A lambda that handles imovo voucher SQS requests',

Copy link
Member

@graham228221 graham228221 left a comment

Choose a reason for hiding this comment

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

Generally looks fine! But as discussed I think we should name this stack something a bit more generic as they outputs won't always be "rewards".

My suggestion would be imovo-voucher-api (this opens up the possibility to migrate the existing digital-voucher-api scala stack into this typescript application in future).

There's a few copy/paste bits that mention the stripe-disputes work

Comment on lines +37 to +39
`There are one or more failed dispute webhook events in the ${app} dead letter queue (DLQ). ` +
`Check the attributes of the failed message(s) for details of the error and ` +
'ensure the Stripe webhook processing is working correctly.',
Copy link
Member

Choose a reason for hiding this comment

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

A few copy and paste bits from the Stripe disputes work

Comment on lines +154 to +167
function getStripeSecretPolicy(scope: SrStack) {
return new AllowGetSecretValuePolicy(
scope,
'Allow Secrets Manager Stripe Webhooks policy',
'Stripe/ConnectedApp/StripeDisputeWebhooks-*',
);
}

function getSalesforceSecretPolicy(scope: SrStack) {
return new AllowGetSecretValuePolicy(
scope,
'Allow Secrets Manager Salesforce policy',
'Salesforce/ConnectedApp/StripeDisputeWebhooks-*',
);
Copy link
Member

Choose a reason for hiding this comment

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

We won't need these for this project (we will need the imovo credentials)

@andrade0 andrade0 closed this Feb 10, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

feature Departmental tracking: work on a new feature

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants