opg-modernising-lpa

module
v0.1448.0-stopiffindin... Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Sep 26, 2024 License: MIT

README

OPG Modernising LPA

path-to-live-workflow licence-mit codecov Go Reference repo standards badge

OPG Modernising LPA Documentation

Documentation for the service can be found in the /docs/ folder.

Getting Started

Prerequisites
  • Docker and docker-compose
  • Nodejs and Yarn
Installation

Install dependencies for development

yarn install

Bring the service up

make up
Run Cypress tests
make run-cypress

Cypress is run locally rather than in docker. To ensure version parity of nodeJS use a version manager, such as asdf, to parse .tool-versions:

asdf install
Local development

To run the app in dev mode:

make up-dev

Dev mode adds hot reloading via air which will watch .go and .gohtml for changes and recompile the app.

It also enables debugging via delve. Delve runs on localhost:2345 - add this to your editor/IDE debug config settings and then add breakpoints to step through the app code when running on localhost. Example VSCode debug config:

{
    "name": "Go remote debug",
    "type": "go",
    "request": "attach",
    "mode": "remote",
    "port": 2345,
    "host": "127.0.0.1",
    "trace": "verbose"
}
Pact

We use Pact for contract tests. To install the necessary tools to run the tests do:

go install github.com/pact-foundation/pact-go/v2
pact-go install
Code generation

We make use of mockery for generating mocks and enumerator for generating enums. To use you'll need to go install ./cmd/enumerator, then running make go-generate will create code from any declarations.

Licence

The OPG Modernising LPA code in this repository is released under the MIT license, a copy of which can be found in LICENCE.

Directories

Path Synopsis
app module
cmd
enumerator
Enumerator is a tool to automate the creation of simple enums.
Enumerator is a tool to automate the creation of simple enums.
event-logger
Event logger is a tool to capture sqs events and display the most recent as a HTML page.
Event logger is a tool to capture sqs events and display the most recent as a HTML page.
event-received
Event received is an AWS Lambda function to handle incoming events.
Event received is an AWS Lambda function to handle incoming events.
mock-notify
Mock notify is a mock for GOV.UK's Notify service.
Mock notify is a mock for GOV.UK's Notify service.
mock-os-api
Mock OS API is a mock for Ordnance Survey's Places API
Mock OS API is a mock for Ordnance Survey's Places API
internal module
actor
Package actor provides types that are useful for actors on an LPA.
Package actor provides types that are useful for actors on an LPA.
actor/actoruid
Package actoruid provides an identifier for the various actors on an LPA.
Package actoruid provides an identifier for the various actors on an LPA.
app
Package app provides the web server for modernising-lpa.
Package app provides the web server for modernising-lpa.
appcontext
Package appcontext provides functionality to pass data in contexts through the lifetime of a web request.
Package appcontext provides functionality to pass data in contexts through the lifetime of a web request.
attorney/attorneydata
Package attorneydata provides types that describe the data entered by an attorney or trust corporation.
Package attorneydata provides types that describe the data entered by an attorney or trust corporation.
attorney/attorneypage
Package attorneypage provides the pages that an attorney or trust corporation interacts with.
Package attorneypage provides the pages that an attorney or trust corporation interacts with.
certificateprovider/certificateproviderdata
Package certificateproviderdata provides types that describe the data entered by a certificate provider.
Package certificateproviderdata provides types that describe the data entered by a certificate provider.
certificateprovider/certificateproviderpage
Package certificateproviderpage provides the pages that a certificate provider interacts with.
Package certificateproviderpage provides the pages that a certificate provider interacts with.
date
Package date provides functionality for working with dates.
Package date provides functionality for working with dates.
donor/donordata
Package donordata provides types that describe the data entered by a donor.
Package donordata provides types that describe the data entered by a donor.
donor/donorpage
Package donorpage provides the pages that a donor interacts with.
Package donorpage provides the pages that a donor interacts with.
dynamo
Package dynamo provides a client for AWS DyanmoDB.
Package dynamo provides a client for AWS DyanmoDB.
event
Package event provides a client for AWS EventBridge.
Package event provides a client for AWS EventBridge.
form
Package form provides types for some common forms.
Package form provides types for some common forms.
identity
Package identity provides types for capturing and validating an identity check.
Package identity provides types for capturing and validating an identity check.
lambda
Package lambda provides a client for AWS Lambda.
Package lambda provides a client for AWS Lambda.
localize
Package localize provides functionality for English and Welsh language content.
Package localize provides functionality for English and Welsh language content.
lpastore
Package lpastore provides a client for the LPA store.
Package lpastore provides a client for the LPA store.
lpastore/lpadata
Package lpadata provides types that describe the data used by the LPA store.
Package lpadata provides types that describe the data used by the LPA store.
notify
Package notify provides a client for GOV.UK's Notify service.
Package notify provides a client for GOV.UK's Notify service.
onelogin
Package onelogin provides a client for GOV.UK's One Login service.
Package onelogin provides a client for GOV.UK's One Login service.
page
Package page provides middleware and handlers for root-level pages.
Package page provides middleware and handlers for root-level pages.
pay
Package pay provides a client for GOV.UK's Pay service.
Package pay provides a client for GOV.UK's Pay service.
place
Package place provides a client for Ordnance Survey's Places API.
Package place provides a client for Ordnance Survey's Places API.
random
Package random provides common generators of random data.
Package random provides common generators of random data.
s3
Package s3 provides a client for AWS S3.
Package s3 provides a client for AWS S3.
search
Package search provides a client for AWS OpenSearch.
Package search provides a client for AWS OpenSearch.
secrets
Package secrets provides a client for AWS Secrets Manager.
Package secrets provides a client for AWS Secrets Manager.
sesh
Package sesh provides functionality for setting and reading session data as cookies.
Package sesh provides functionality for setting and reading session data as cookies.
task
Package task provides types to describe the different states a tasklist task can be in.
Package task provides types to describe the different states a tasklist task can be in.
telemetry
Package telemetry provides functionality for tracing with AWS X-Ray and logging information related to the current web request.
Package telemetry provides functionality for tracing with AWS X-Ray and logging information related to the current web request.
templatefn
Package templatefn provides functions for use in templates.
Package templatefn provides functions for use in templates.
uid
Package uid provides a client for calling the UID service.
Package uid provides a client for calling the UID service.
validation
Package validation provides functionality to validate form data and present translatable errors.
Package validation provides functionality to validate form data and present translatable errors.
voucher/voucherpage
Package voucherpage provides the pages that a voucher interacts with.
Package voucherpage provides the pages that a voucher interacts with.
mocks
GOVUKNotify Module
GOVUKSignIn Module

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL