diff --git a/docs/contributor/test-environment.md b/docs/contributor/test-environment.md index cb00461..ed19964 100644 --- a/docs/contributor/test-environment.md +++ b/docs/contributor/test-environment.md @@ -813,17 +813,30 @@ All containers share a bridge network (`certctl-test`, subnet 10.30.50.0/24) wit ### Key Generation Flow (Agent-Side) -``` -Server creates job (AwaitingCSR) → Agent polls, sees job → -Agent generates ECDSA P-256 key pair locally → -Agent creates CSR (public key + CN + SANs) → -Agent POSTs CSR to server → Server signs via issuer → -Server stores cert, creates Deployment job (Pending) → -Agent polls, sees Deployment job → -Agent fetches signed cert from server → -Agent reads local private key from /var/lib/certctl/keys/ → -Agent writes cert + key + chain to /nginx-certs/ (shared volume) → -Job marked Completed +```mermaid +sequenceDiagram + autonumber + participant Srv as certctl-server + participant Iss as Issuer connector + participant Agt as certctl-agent + participant FS as /var/lib/certctl/keys/
(local agent FS) + participant Vol as /nginx-certs/
(shared volume) + + Srv->>Srv: create Job (AwaitingCSR) + Agt->>Srv: poll for jobs + Srv-->>Agt: Job(AwaitingCSR) + Agt->>FS: generate ECDSA P-256 keypair + Agt->>Agt: build CSR (pubkey + CN + SANs) + Agt->>Srv: POST CSR + Srv->>Iss: sign CSR + Iss-->>Srv: signed cert + Srv->>Srv: store cert; create Deployment Job (Pending) + Agt->>Srv: poll for jobs + Srv-->>Agt: Job(Deployment) + Agt->>Srv: GET signed cert + Agt->>FS: read private key + Agt->>Vol: write cert + key + chain + Agt->>Srv: mark Job(Completed) ``` ### Shared Volume Architecture