Now you work alone. The capstone is the integration you built in Lesson 6.6 for the Commercial Premise Trading Licence SRD: seven lookups, the DLS fee quote and five DLS pushes, all with your own prefix. Hand in an evidence pack, then defend it: your assessor reproduces your curls and asks you for one live change.
Capstone deliverables
| # | Deliverable | Evidence |
|---|---|---|
| 1 | Integration worksheet for L1–L7, F1 and P1–P5 (P6, P7 for a distinction) | The completed table (Lesson 1.3 format) with the SRD section of each row |
| 2 | Mocks: token server, identity, tax, business, land and DLS, with a rule for every case in SRD section 9 and the TA cases | Screenshots of each mock (Request, Responses, Otherwise) |
| 3 | The seven lookups ${YOUR_FIRST_NAME}_ID_LOOKUP_FETCH … ${YOUR_FIRST_NAME}_LAND_PARCEL_FETCH (FMAPPING): POST bodies only, failure conditions with the provider’s message, L6 paging, L5 and L7 blocking on a 00 answer |
Mapping text; mapping-test output |
| 4 | ${YOUR_FIRST_NAME}_DLS_LICENCE_FEE_QUOTE_FETCH (FMAPPING) and ${YOUR_FIRST_NAME}_DLS_CREATE_APPLICATION_PUSH (PMAPPING, sync): CLIENT_CREDENTIALS with a unique storage key, documents as base64, amount retained as amountToPay |
Mapping text; mapping-test output; F1 bands and errors |
| 5 | The async pushes P2–P5 (PMAPPING) with Idempotency-Key, callback mapping and P5 saving LICENCE-Certificate-fileName |
Mapping text; 202 output; each callback you posted |
| 6 | Proof: TL1–TL8, TA1–TA14 and the happy path F1 → P5, plus floorArea 9003, 9004, 9005, 13:00 and MOCK_REJECT, and one repeated callback (TC38) | curl commands with their real output |
| 7 | Operations: find each request in Requests and one failing call in Kibana; resubmit one failed async push after fixing it | traceIds, trace and Kibana screenshots; retry count |
| 8 | Go-live note: production base URLs per provider, every secret as a whole-string "${NAME}" environment variable with its name listed, Use mock off, callback authentication and retries agreed with DLS |
Half a page |
Rubric: pass = at least 3 in every row
| Criterion | Distinction (4) | Pass (3) | Not yet (1–2) |
|---|---|---|---|
| SRD → design | Every operation and test case mapped to a rule and an outcome | All operations, happy path + main errors | Operations or cases missing |
| Mocks | Specific-to-general order, Otherwise, header rules for tokens and idempotency | Rules work | Rules shadow each other |
| Auth | Unique storage key per provider, correct extract and expiry, secrets planned as environment variables | Works | Hard-coded in headers or shared key |
| Lookups and quote | Failure conditions on 00 answers, paging, messages from responseMessage, no ID in a URL | Most lookups correct | Form would accept bad data |
| Pushes | Sync P1 retains amountToPay as a number; async P2–P5 with callbacks and idempotency; P6 and P7 done | P1–P5 work with callbacks | Pushes missing or callbacks not sent |
| Proof | All curls reproducible, outputs explained | Most | Screenshots only |
| Operations | Correct status reading, resubmit, clear go-live note | Partially | Missing |
Your turn · before you start
Use your first name as the prefix everywhere (mock paths
/${your_first_name}/…, codes and storage keys${YOUR_FIRST_NAME}_…, application numbers), replaced before saving. Two active mocks with the same method, path and conditions are rejected, and a reused application number replays an old push.
← 6.6 Assignment: Commercial Premise Trading Licence integrations