Application deployments

Updated: 14 June 2024

Acme app

Deployments of Acme app:

deployment url environment sandbox purpose
Live https://greatapp.com Production No Host a public site.
Stage deploy https://uat.greatapp.com Staging Yes Review and user testing.
Laptop deployment e.g. http://localhost Development Yes Build & experiment.

Glossary

  • App: synonym for project.
  • Deployment: an instance of the project running on a host.
  • Environment: configuration settings which enable the deployment to fulfil its purpose.
  • Release: the word release is the name of a process. It is the process which makes a Version available for Deployment.
  • Sandbox: a deployment where it’s safe to use current and un-released features, without risk of altering Production environment data or incurring costs.
  • Version: a version numbered piece of software.

Agile Jira

Updated: 07 April 2024

How we use Jira:

  • Epic – Something the client has asked for or we are recommending. It is a large Story which will be broken down. An Epic groups together all other issue types. Represents a significant deliverable e.g. a new feature or experience. An Epic has an end point. Epics can appear on Roadmaps.
  • Story – Stories are the smallest units of work that an Epic can be broken down into. Could possibly be expressed “As a [persona], I [want to], [so that].” A Story can exist in isolation without a parent Epic.
  • Task – An engineering or administrative task, added by us.
  • Bug – A serious problem which impairs or prevents the functioning of a product.
  • Subtask – A smaller piece of work required to resolve a Bug, Story or Task
  • Version / Release – An objective point in time. Will sometimes correspond to the release (but not necessarily the deployment) of a version numbered piece of software. The name should reflect what will have been accomplished e.g.
    • Vendor API capabilities understood.
    • Customer on-boarding behaviour tests added.
    • Duplicate pdf invoice code refactored.

PSD2 Strong authentication with 3D Secure 2

Updated: 09 April 2024

Financial Conduct Authority UK – Strong Customer Authentication.

Glossary

Access Control Server (ACS)
A service either hosted or related to the Issuing bank. Responsible for issuing challenge URLs and generating device fingerprints.

ASPSP
Account servicing payment service provider.

Cardinal Centinel
A 3D Secure MPI provider.

CVV or CCV
Credit card security code.

ECI
eCommerce indicator.

EBA
European Banking Authority

EEA
European Economic Area

EMV payment method
https://en.wikipedia.org/wiki/EMV

Merchant account
A merchant account is a type of bank account that allows businesses to accept payments by debit or credit cards. When a customer pays for your product or service with a card, the funds are first deposited into a merchant account before being transferred to a business bank account.

MOTO Transactions
Mail Order Telephone Order.

MPI
Merchant plug-in https://en.wikipedia.org/wiki/Merchant_plug-in

Payment method
PayPal (aka “PayPal Business”), AmazonPay, ApplePay, Credit Card, Debit Card.

Payment Method Nonce
One time reference to a payment method stored in a Vault. Possibly has an expiration time.

Payment Method Token
Tokenised Credit Card data and device fingerprint. References a payment method stored in a Vault. This token can be used to create transactions without the PCI compliance burden that comes with handling unencrypted data.

SCA
Strong Customer Authentication. Banks will decline payments that require SCA but have not gone through authentication.

VS Code Git Graph Extension

Updated: 03 February 2024

A reasonable layout for the VS Code Git Graph Extension which puts the diff view in the top half of the window.

Bottom left – Git Graph
Bottom right – Terminal
Top half – Diff view

Requires setting Git Graph ‘Open New Tab Editor Group’ equal to One.

How to configure PHP, Xdebug, Docker and PHPStorm

Updated: 15 November 2023

1. Select these two items in PHPStorm:
Run > Start Listening for PHP Debug Connections
Run > Break at first line in PHP scripts

2. Load a page in a web browser.

3. PHPStorm should display an Incoming Connection From Xdebug dialog box.

4. From the bottom of the dialog, select the local file which matches the ‘File path on server’ value and click Accept.

Deploy branch from intermediate bare git repo

Updated: 09 November 2023

Scenario

  1. I have a project on BitBucket.
  2. I work on this project locally.
  3. I want to deploy the changes to Production.
  4. Rather than pulling changes directly from Bitbucket to the working directory on the Production server, I need to go via a bare-repo on the Production server. The bare repo has been cloned from BitBucket earlier. This workflow is similar to deployments on Cloudways or Plesk.

Method

1. Push changes from local to BitBucket as normal.

2. From inside the bare repo directory on the Prod server, fetch all the changes from BitBucket

cd /bare/repo/my-proj.git
git fetch origin *:*

3. Transfer the changes to the working directory

cd /anywhere/on/the/system
git --work-tree /path/deploy/dir --git-dir /bare/repo/my-proj.git checkout --force my-branch