2025-09-30

  • not invited to go-live (Jen was pushing for Ops to be self-sufficient)
  • 3730:
    • figure out calling PfP lambdas either thru Postman, AWS toolkit or otherwise
    • consider looking again at sam-run-local now that
  • go live went ok for Boots and Apotec
    • need to defend against ‘undefined’ - ticket coming from Pete
  • standup
    • Connor flags ’notification step not working’ in context of UI change he was doing.
  • rubber duck
    • Connor was setting up regression tests, took the opp to ask Matt about my access… Apparently, he did int not dev and these are diff urls. Now resolved.
  • TODO look at regression tests
  • 5824:

2025-09-29

  • boots, go live.
    • 1st test: 4 notifications sent from notify (presume going thru the stages)
    • 2nd test: 1
    • return call from notify failed signature due to space at end of kid??? (ssm param set by Ant?)
    • tags not showing on device (NPPTS issue)
      • 200 prescriptions created, 20? fetched by PfP API, seems likely ours was simply not in the list.
      • check code…
        • need to get spine url for .envrc
  • 3730: running PfP
    • found values for .envrc from aws console in dev account
      export AWS_DEFAULT_PROFILE=prescription-dev
      export stack_name=tstephen-nhs-1
      #export TARGET_SPINE_SERVER=<NAME OF DEV TARGET SPINE SERVER>
      # from https://nhsd-confluence.digital.nhs.uk/spaces/APIMC/pages/669194951/KOP-017+Setup+to+call+new+spine+interaction+from+AWS+lambda
      #export TARGET_SPINE_SERVER=veit07.devspineservices.nhs.uk
      # from aws console (dev acct)
      export TARGET_SPINE_SERVER=msg.veit07.devspineservices.nhs.uk
      #export TARGET_SERVICE_SEARCH_SERVER=<NAME OF DEV TARGET SERVICE SEARCH SERVER>
      export TARGET_SERVICE_SEARCH_SERVER=nhsuk-apim-stag-uks.azure-api.net
      
      export LOG_LEVEL=DEBUG
      
    • make aws-configure - make sure to use the suggested sso-session name as make aws-login to renew session assumes it.
    • make sam-sync seems to work (sync is ok, did not invoke to test the result)
    • make sam-run-local runs out of file handles: Error: [Errno 24] inotify instance limit reached
      • cat /proc/sys/fs/inotify/max_user_watches
        1048576
        
        (seems like a big number to me)
      • apparently a function of the number of files sam has to watch created .samignore to reduce total number that wasn’t enough
    • return to make sam-sync
      samcli.commands.deploy.exceptions.DeployFailedError: Failed to create/update the stack: tstephen-nhs-1, An error occurred
      

(ValidationError) when calling the CreateStack operation: Parameters: [StateMachineLogLevel] must have values ``` sam-sync does not read $STATE_MACHINE_LOG_LEVEL as deploy does modified template to provide default (note non-standard options)

  • delete cloud formation stack aws cloudformation delete-stack --stack-name tstephen-nhs-1
  • Found postman/README.md - TODO try it out
  • AWS toolkit missing from side [‘activity’] bar. Solved by Ctrl+Shift+P Developer: Reload Window

2025-09-26

2025-09-25

  • 5803: pair with Jim on change to
    • rename secret as KID rather than name
    • replace isProd within SAMTemplates with injected params
  • quite a long chat
  • chased yesterday’s PRs
  • 5087:
    • affects electronic-prescription-service-api
    • Try the AWS tools to hit the ‘working’ endpoint .../eps-fhir-prescribing-api/content#post-/FHIR/R4/$prepare
    • if good, try remote debugging?
    • need to understand contents of .envrc? (See README)
  • go live regroup
    • test user in prod. currently hostage to having to have dispenser onboard
    • review Go Live, set up dev profile and verify can run aws sam similar commands

2025-09-24

2025-09-23

  • Kayal asked for evidence on PfP sandbox PR

    cyclonedx-npm --output-format json --output-file sbom-node.json
    grype sbom:sbom-node.json -o table
    
    • to install
      npm install -g @cyclonedx/cyclonedx-npm
      curl -sSfL https://raw.githubusercontent.com/anchore/grype/main/install.sh | sh -s -- -b /usr/local/bin
      
  • backlog

    • 5732: OAS schema change
    • 4876: API to post to sharepoint, permissions may be a challenge. Later on to power BI
      • depends on XXXX to extract from splunk, Ant has the key
      • splunk func. is email only
      • tech mtg of options, mon mtg approve, de=cision log
    • 4215: canary instead of blue-green -> delta (Ant)
    • 3789: compse list of things inSAM eligible for deletion and ask for approval
    • 5389: add app name to existing report
    • 3730: marked dupe. but perhaps confused prescrip and dispens addrs
    • 3532: SAM template faffing
    • 4110: don’t worry about diff defn of PfP
    • 3771: acct resources => https://github.com/NHSDigital/electronic-prescription-service-account-resources

2025-09-22

  • Greg said he would resolve timesheet behind the scenes, not to worry that it won’t show on UI
  • AEA-5789
    • cloud formation failed due to previous rollback (copilot explained)
      • Jim explained have to manually clean, GHA cleanup only applies to old PRs
    • I was missing export of q from messaging
    • Then hit illegal name (...fifo) make sam-validate or make sam-run-local would have flagged
    • testing…
  • AEA-0000-rename-sandbox
    • Bence approved, then I had to merge main and sign and it all went to hell SQ no longer finds the package

2025-09-19

2025-09-18

  • Daniel (Danny) Williams: lead arch for NHS app
    • goal: successful, first time
  • Questions
    • future research on finer granularity of notifications
    • poll SQS every minute to reduce load by batching Notify calls
    • sensitivity about anything that turns off notifications (apparently 40% off currently)
    • 177k messages / day for 50% app take up and 17% pharmacy takeup
      • app can handle 1000s notifications / sec
      • vaccinations can queue many millions of notifications so can lead to significant delay
    • two unrelated retries: invisible 5 mins plus retry back off
    • future research on how old a notification can be whilst still being useful
    • notify is a ‘silver’ service = 24x365
    • notify problems: find when vaccination notifications being sent!
    • Hayley Stokes: cross-team standup in pm for period of hypercare after go-live
    • Kelvin Lee controls access to Notify’s ‘actual’ delivery status
  • Dev: security patching

2025-09-15

2025-09-15

2025-09-12

  • Ant: AWS access should be there, thus unblocking Jira/Confluence
    • spend time getting setup today
  • Paul: catch up this pm
  • Rubber duck
    • Jim & splunk

2025-09-11

  • retro on mural
    • team names: notifications -> tango
    • tech changes at impl ticket stage need to feedback into docs (from Pete)
    • new starters:
      • Mike Grimwood, Lead Dev Mgr
  • no Jira/Confluence

2025-09-10

  • mtgs: standup, review
  • onboarding
    • two accounts: NHS & VDI
    • Jiras
      • 5743
      • 5922
      • 5729: query for users with 3 notifications, tabulate with time receoved and flag if violates cooldown
      • 5728

2025-09-09

2025-09-08

  • 45mins mtgs
    • splunk issue identified cause of over-reported notifications
      • Jim, Ant and I to look at
  • Notifications refinement
    • planning now on NHS portal: Prescription Tracking Notifications Research plan.xlsx
    • query about 130% notifications
      • no variation on Sun / bank holiday
      • reprocessing some records? => issue with splunk query?

2025-09-05

  • ‘main’ stand-up
    • John Kitson: live incident
    • Jonathan Welch
    • Paul Hoskin
    • James (Jim) Wild
    • Connor Avery
    • Jennifer Redman
    • Matthew Popat
    • BencĂ© Gadanyi
    • Kayal Rathinaveeelu
    • Thomas (Tom) Merrington
  • Greg Steel
    • Aire centre
    • submitted 3 days for w/c 1st Sept
    • remember to submit part weeks before month end
  • Paul H
    • will send invites
    • projects
      • prescription tracker
      • eps assist me: cchatbot enhancement
      • notifications
    • parallel team ’echo’ (John ???, Emma (BA))
    • ceremonies
      • standup evs: M,W,F
      • standup full team: T, T
      • rubber duck
      • sprint review: fortnightly, seeking to be more prepared and structured
    • team:
      • leads: Ant, Matt, Adam (new)

2025-09-04

  • planning meeting: prod go live (slated for 18/09)
    • need prod patient to test with
      • testing shld only be a day but relies on Emma’s capacity
    • splunk report def’ns stored in individual’s profile

2025-09-03 - day 1 at AireLogic

  • quick chat with Paul Hoskins will set up:

    • contact w Jim (pat leave)
    • intro to notifications project
  • Lyndsey wanted to register equipt, which led me to note:

  • prescriptions repo

  • TODO

    • dev containers
    • signing git commits
    • nixos? other dynamic environment?
    • encrypted disk
      • clean root disk
      • clean / backup data disk
  • Questions

    • sign commits as whom? should be airelogic account?
    • dev container runs against remote environment or both hosted locally?
  • Dev containers

  • Intro to notifications

    • Go live in 2 weeks and then 1 week before Jim off on pat leave for 3 motnhs
    • Jo:
      • user researcher, onboard 1 year, just after Jim
      • also on: ? and eps: assist me
      • wider prescriptions and medications
        • prescription bar code could allow to take scriptto another pharmacy
        • ???
      • national rollout starting, 60% of pharmacies, boots is fully included in current 16%
      • limited press, unlikely to be discoverable
    • Pete is the BA, who is responsible for the partner suppliers
    • Jim
      • dedupe rules (eg 2 items on script or 2 scritps at diff pharmacies)

      • pharmacy sends PSU to trigger the seq diag.

      • msg goes to FIFO SQS q (some dedupe inherent)

        • id encodes 1 notificiation per person, per pharma, per 5 mins
      • processor lambda starts 1/min and works till q empty or ’nearly’ (becos of 100 batch size)

      • cool off (in dynamo) prevents more frequent than 2h;y notification

        • success can therefor mean not sent
      • silent (parallel) running waits 100ms which is approx. how long it takes to get notification then record answer

      • failures go to dead letter q

        • 2 weeks of a month TTL but no handling on there.
      • timeliness is key business case rests on saving 75% of pharmacy time (answering phones)

      • notify provide call back service (to ‘us’ not patient) - stashed in same dynamo table

    • Kayal (she) is tester
      • scenario 2: notifications are off, should
        • message, channel, supplier
    • Joe Seaton, contact in Notify team
  • shadowing

    • 5 environments (env => AWS account)
      • dev: PRs deploy there
      • qa
      • ref
      • backup
      • prod
    • test users (NHS number):
      • …3126
    • ODS codes identify a pharmacy
    • PFP: prescriptions for patients