Skip to content

LIME-1864 BE skeleton#1

Merged
SarahHillGDS merged 2 commits into
mainfrom
LIME-1864
Mar 16, 2026
Merged

LIME-1864 BE skeleton#1
SarahHillGDS merged 2 commits into
mainfrom
LIME-1864

Conversation

@SarahHillGDS
Copy link
Copy Markdown
Contributor

@SarahHillGDS SarahHillGDS commented Mar 4, 2026

Proposed changes

What changed

  • Added basic project structure and configuration files
  • Set up initial TypeScript/Lambda function scaffolding
  • Created placeholder files for:
    quality-gate.manifest.json
    acceptance-tests/Dockerfile
  • Added minimal implementation to establish architecture
  • Added check PR github action, sonar and dependabot configuration

Why did it change

Establishing foundational structure for Open Banking API

Issue tracking

Other considerations

  • This is skeleton/scaffolding work - full implementation to follow
  • No functional changes yet, tests are placeholders
  • README updated with setup instructions
  • parameters added to dev will need to be added to all accounts as part of the deployment plan
    /common-cri-parameters/CriIdentifier
    /common-cri-parameters/AuditEventNamePrefix

@SarahHillGDS SarahHillGDS requested a review from a team as a code owner March 4, 2026 11:09
Comment thread deploy/template.yaml Outdated
Comment thread src/handler/basic-function.ts
Comment thread eslint.config.js Outdated
Comment thread Makefile Outdated
Comment thread package.json Outdated
Comment thread README.md Outdated
Comment thread tsconfig.json Outdated
Comment thread deploy/template.yaml
Copy link
Copy Markdown
Contributor

@JessWinterborne JessWinterborne left a comment

Choose a reason for hiding this comment

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

Looking really good :)

Comment thread eslint.config.js Outdated
Comment thread README.md Outdated
@JessWinterborne
Copy link
Copy Markdown
Contributor

One more thing - I agree with not adding all the GHAs since thats for another future ticket - but having check PR could be worth including here.

Comment thread .github/workflows/pr-check.yml
@SarahHillGDS SarahHillGDS force-pushed the LIME-1864 branch 6 times, most recently from 6dd6d67 to 3a9fbdf Compare March 12, 2026 12:00
Copy link
Copy Markdown
Contributor

@JessWinterborne JessWinterborne left a comment

Choose a reason for hiding this comment

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

LGTM - might be worth getting another tick though

Comment thread .github/workflows/run-sonar-scan.yml Outdated
path: coverage/
- name: Run SonarCloud Analysis
if: ${{ github.actor != 'dependabot[bot]' }}
uses: SonarSource/sonarcloud-github-action@master
Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Could be picked up when we do github actions but there is a shared action for sonar we could reuse

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

I've explicitly added this to the scope of the actions ticket https://govukverify.atlassian.net/browse/LIME-2030

Comment thread deploy/private-api.yaml
version: "0.1"
title: "Open Banking Credential Issuer Private API"
paths:
/basic-function:
Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Can we add things we know will exist session and authorization

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

@DavidIndiongcoGDS has added this as part of LIME-1867

Comment thread deploy/public-api.yaml
version: "0.1"
title: "Open Banking Credential Issuer Public API"
paths:
/health:
Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Can we add things we know will exist token credential issue and jwks

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

same as above

Comment thread deploy/template.yaml

Globals:
Function:
CodeSigningConfigArn: !If
Copy link
Copy Markdown

Choose a reason for hiding this comment

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

I think were missing the global timeout here for lambdas

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

Setting to 40 seconds until we know more about response times

Comment thread deploy/template.yaml Outdated
- ProvisionedConcurrentExecutions: !FindInMap [ ProvisionedConcurrency, Environment, !Ref 'Environment' ]
- !Ref AWS::NoValue
Metadata:
BuildMethod: makefile
Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Should this be esbuild rather than makefile?

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

vite is doing the building so the makefile was a convenient way to handle that from the template

we could remove vite and rely only on esbuild but as that's what the FE is using we aligned them, given we've got a working stable vite build config it's probably not worth the additional churn to remove it

Comment thread deploy/template.yaml Outdated
PublicAPIUsagePlan:
Type: AWS::ApiGateway::UsagePlan
Condition: IsDeployedFromPipeline
# DependsOn:
Copy link
Copy Markdown

Choose a reason for hiding this comment

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

These are needed otherwise assets get created out of order but stage is created alongside the api

Comment thread deploy/template.yaml
# #
# Parameters #
# #
####################################################################
Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Under parameters one we know we will need will be VerifiableCredentialKmsSigningKeyParameter

@@ -0,0 +1,15 @@
import type { APIGatewayProxyEvent, Context } from 'aws-lambda'
Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Do we have a basic infra test? Should be able to lift this from the work @ChrisBates1 has done

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

Raised this with Chris last sprint, his preference is to handle this in a separate ticket

Comment thread quality-gate.manifest.json Outdated
@@ -0,0 +1 @@
{}
Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Is there nothing that could be populated here based on what we have?

Comment thread vite.config.ts Outdated
minify: false,
outDir: 'dist',
rollupOptions: {
external: [/^@aws-sdk\/.*/, /^node:.*/, /^@aws-lambda-powertools\/.*/], //dependencies that should not be bundled
Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Can we add a little detail on why these shouldnt be bundled. Best assuming people coming after us may not know as much about vite. Or we might need to change or add to this in future so context is important

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

they are excluded because they're already available in the lambda runtime

node also throws up some issues as some of it is installed OS specific

Comment thread Makefile Outdated
@@ -0,0 +1,5 @@
build-BasicFunction:
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

when we add more functions we could dry this up a bit like so:

.PHONY: bundle

bundle:
	npm ci
	npm run build

build-BasicFunction: bundle
	cp -r dist/* $(ARTIFACTS_DIR)/

build-AnotherFunction: bundle
	cp -r dist/* $(ARTIFACTS_DIR)/

we're still running npm ci for each function build though so we might want to look into externalising that bit somehow

- add example metrics
- add example logging
- remove vite config
- remove makefile
- enable experimental decorators in tsconfig
- update deploy template to use `esbuild` build method
- align GHA with FE
@sonarqubecloud
Copy link
Copy Markdown

@SarahHillGDS SarahHillGDS merged commit 133591b into main Mar 16, 2026
5 checks passed
@SarahHillGDS SarahHillGDS deleted the LIME-1864 branch March 16, 2026 17:05
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.

5 participants