Conceptualized by Alistair Cockburn. Also known as "Ports and Adapters".
In a nutshell:
Application Driver -> Primary Adapter -> Primary Port -> Use Case -> Secondary Port -> Secondary Adapter -> External System/Side Effect
| Adyen Test Card Numbers | |
| These cards are only valid on our TEST system and they will never involve any actual transaction or transfer of funds. The TEST card numbers will not work on the Adyen LIVE Platform. | |
| For all cards use the following expiration and CVV2/CVC2/or CID for Amex. | |
| For all cards: | |
| Expiration Dates CVV2 / CVC3 CID (American Express) | |
| 08/2018 OR 10/2020 737 7373 |
| # filter by request host header | |
| varnishlog -q 'ReqHeader ~ "Host: example.com"' | |
| # filter by request url | |
| varnishlog -q 'ReqURL ~ "^/some/path/"' | |
| # filter by client ip (behind reverse proxy) | |
| varnishlog -q 'ReqHeader ~ "X-Real-IP: .*123.123.123.123"' | |
| # filter by request host header and show request url and referrer header |
| #!groovy | |
| import groovy.json.JsonOutput | |
| import groovy.json.JsonSlurper | |
| def label = "mypod-${UUID.randomUUID().toString()}" | |
| podTemplate(label: label, yaml: """ | |
| spec: | |
| containers: | |
| - name: mvn | |
| image: maven:3.3.9-jdk-8 |
| import { redirect, createCookie } from "remix"; | |
| const sessionSecret = process.env.SESSION_SECRET; | |
| const cognitoDomain = process.env.COGNITO_DOMAIN; | |
| const clientId = process.env.CLIENT_ID; | |
| if (!sessionSecret) { | |
| throw new Error("SESSION_SECRET must be set"); | |
| } | |
| if (!cognitoDomain) { | |
| throw new Error("COGNITO_DOMAIN must be set"); |
| import fetch from 'cross-fetch'; | |
| type Todo = { | |
| id: number; | |
| userId: number; | |
| title: string; | |
| completed: boolean; | |
| }; | |
| interface CustomMatchers<R = unknown> { |