Overview
Type: INFO — Client integration & go-live playbook
Audience: Delivery engineers, client DevOps, client IT/security, CS hypercare
Related: #13 Deployment Case Study · #14 Storage Architecture · engineX-internal #5 Onboarding runbook · engineX-internal #6 Security brief
This ticket is the complete client integration guide for taking a pilot from deployed EngineX to production with real systems — not mocks. It covers:
Custom agent wiring — real DB/APIs, tools, credentials
Client IT sign-off — VPN, TLS, network, security review
Hypercare — first 2–4 weeks after go-live
Use alongside #13 (install) and #14 (storage).
Ticket metadata
Field
Value
Phase
Phase 1 — pilot delivery
Priority
P0 — required for every signed client
Blocks
Design partner go-live, repeatable onboarding
Out of scope
Building Engine Cloud (#4 ), platform multi-tenant
1. Integration lifecycle (end-to-end)
flowchart LR
K["Kickoff<br/>scope + systems"] --> D["Deploy EngineX<br/>#13"]
D --> W["Wire agent<br/>real DB/APIs"]
W --> I["IT sign-off<br/>VPN/TLS/firewall"]
I --> G["Go-live"]
G --> H["Hypercare<br/>2–4 weeks"]
H --> S["Steady state<br/>client owns ops"]
Loading
Phase
Owner
Duration
Kickoff + discovery
EngineX + client sponsor
Week 0
Deploy + base config
Client DevOps + EngineX
Week 1
Custom agent wiring
EngineX engineering
Week 1–2
IT / security review
Client IT
Week 1–2 (parallel)
UAT + HITL training
Client ops + EngineX
Week 2
Go-live
Joint
End of week 2–3
Hypercare
EngineX CS + client ops
Weeks 3–6
2. Custom agent wiring — real DB/APIs (not mocks)
2.1 What “mock → real” means
Shipped templates often include demo tools that return hardcoded JSON. Production pilots replace or extend these with tools that call the client’s systems.
Template
Mock today
Production wiring
hourly_tracking
fetch_broker_transactions(), fetch_investor_logs() return static JSON
Client DB/API/ETL for broker + investor feeds
log_monitor
Ready for real Grafana/Slack if env vars set
GRAFANA_*, SLACK_* — usually minimal code change
agreement_analysis
LLM-only extraction
Document source: S3, SharePoint API, file drop
support_triage
JSON --input
CRM/ticket webhook or API poll (Zendesk, Salesforce)
deep_research
Demo web search fallback
BRAVE_SEARCH_API_KEY or client-approved search API
Rule: EngineX platform state stays on ~/.engine/ (#14 ). The client’s database is accessed only through agent tools — never as the EngineX platform store.
2.2 Integration patterns
flowchart TB
subgraph ClientVPC["Client VPC"]
RT["EngineX runtime"]
Tools["Agent tools.py / MCP"]
RT --> Tools
end
subgraph ClientSystems["Client systems"]
DB["Postgres / warehouse"]
API["REST / GraphQL APIs"]
SaaS["Salesforce / Grafana / Slack"]
Files["S3 / SFTP / file drop"]
end
Tools --> DB
Tools --> API
Tools --> SaaS
Tools --> Files
Loading
Pattern
When to use
Example
Env + API key
Simple REST, webhooks
Grafana, Slack, PagerDuty
OAuth (dashboard Connect)
SaaS with user consent
HubSpot, Google Calendar, Zoho
Custom @tool in tools.py
Client-specific SQL/HTTP
Hourly tracking → Postgres read
MCP server
Reusable connector, stdio/HTTP
Calendar, internal microservice
Read-only DB user
Reporting / reconciliation
SELECT on replica, not primary write
API gateway in front of DB
Client security preference
EngineX calls internal API, not raw SQL
2.3 Custom tool implementation checklist
For each data source the agent needs:
Code locations:
Agent-local tools: examples/templates/<agent>/tools.py (@tool decorator)
MCP config: examples/templates/<agent>/mcp_servers.json
Credential wizard: ./engine setup-credentials examples/templates/<agent>
Integration index: examples/templates/integrations/README.md
2.4 Example: hourly_tracking → real Postgres (illustrative)
Replace mock fetch tools with read-only SQL against client replica:
# examples/templates/hourly_tracking/tools.py (client fork)
@tool (description = "Fetch broker transactions from last hour." )
def fetch_broker_transactions () -> dict [str , Any ]:
# Credentials from env: CLIENT_DB_URL (injected by client secret manager)
# SELECT ... WHERE created_at > now() - interval '1 hour'
...
Client provides:
Read-only DB user + connection string (or internal HTTP API wrapping the query)
VPN/peering if DB is not reachable from EngineX subnet
Sample row schema + test dataset for UAT
2.5 Example: log_monitor (minimal wiring)
Often no custom code — configure env only:
GRAFANA_URL=https://grafana.client.internal
GRAFANA_API_TOKEN=...
GRAFANA_DATASOURCE_UID=...
SLACK_WEBHOOK_URL=...
Deploy with systemd: examples/templates/log_monitor/deploy/engine-log-monitor.service
2.6 Per-integration credential matrix
Integration
Client secret
How EngineX loads it
LLM (Anthropic/OpenAI)
API key
.env or ~/.engine/credentials
Grafana
API token
Agent env file
Slack
Webhook or bot token
Env / credentials store
HubSpot / Zoho
OAuth client ID + secret
Dashboard Connect + encrypted vault
Google Calendar
OAuth
Dashboard Connect + MCP
Client Postgres
Connection string
Secret manager → env (never in git)
Internal REST API
Bearer / mTLS cert
Env or mounted cert volume
3. Client IT sign-off — VPN, TLS, network
3.1 Architecture with security boundary
flowchart TB
subgraph Internet["Internet / corporate network"]
Users["Analysts / approvers"]
end
subgraph Edge["Client edge"]
VPN["VPN / Zero Trust"]
Proxy["Reverse proxy<br/>TLS + SSO"]
end
subgraph Private["Private subnet"]
Eng["EngineX<br/>:8787 internal only"]
Vol["~/.engine volume"]
Eng --- Vol
end
subgraph Data["Client data plane"]
DB["DB / APIs"]
SaaS["External SaaS"]
end
Users --> VPN --> Proxy --> Eng
Eng --> DB
Eng --> SaaS
Loading
Principle: :8787 is never exposed directly to the public internet in production.
3.2 IT security review checklist (client IT)
Provide this to client security team for sign-off:
Network
Dashboard access (./engine serve)
Example reverse proxy (nginx sketch)
server {
listen 443 ssl ;
server_name enginex.client.internal ;
ssl_certificate /etc/ssl /certs/client.crt;
ssl_certificate_key /etc/ssl /private/client.key;
location / {
proxy_pass http ://127.0.0.1:8787 ;
proxy_set_header Host $host ;
proxy_set_header X-Real-IP $remote_addr ;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for ;
proxy_set_header X-Forwarded-Proto $scheme ;
}
}
EngineX bind (internal only):
./engine serve --host 127.0.0.1 --port 8787
# or --host 0.0.0.0 only if SG restricts to proxy subnet
Secrets & data
Access & audit
Sign-off artifact
3.3 Headless-only clients (no dashboard)
If pilot is headless only (./engine run --daemon):
4. Hypercare — first 2–4 weeks after go-live
4.1 Hypercare model
gantt
title Pilot hypercare timeline
dateFormat YYYY-MM-DD
section Go-live
Production cutover :milestone, m1, 2026-01-15, 0d
section Hypercare
Daily check-ins (week 1) :a1, 2026-01-15, 7d
Every-other-day (week 2) :a2, after a1, 7d
Weekly (weeks 3–4) :a3, after a2, 14d
section Steady state
Client-owned ops :milestone, m2, after a3, 0d
Loading
Week
EngineX involvement
Client involvement
1
Daily 15-min standup; monitor runs/alerts; hotfix tools
Approvers available; report issues same day
2
Every-other-day check-in; tune prompts/thresholds
Ops owns dashboard; IT on call for network
3–4
Weekly review; document runbook handoff
Client primary on-call
After
SLA per contract; escalation path only
Full ownership
4.2 Hypercare daily checklist (EngineX)
4.3 Hypercare daily checklist (client)
4.4 Common hypercare issues
Symptom
Likely cause
Fix
Agent can’t reach DB
SG / VPN / wrong connection string
IT opens path; rotate creds
OAuth Connect fails
Redirect URI / client ID mismatch
Fix OAuth app config
HITL never resumes
Approver not trained / pause node stuck
Training; dashboard inject
Mock data still appearing
Old tools.py not deployed
Redeploy client agent fork
Dashboard 502
Proxy misconfig / serve not running
Check nginx → :8787
LLM errors
Key expired / model access
Rotate key; check quota
4.5 Hypercare exit criteria (handoff to steady state)
5. Kickoff discovery worksheet (complete before wiring)
Collect in kickoff call — blocks custom integration:
#
Question
Answer (client)
1
Primary agent / workflow?
2
Success metric at 30 days?
3
Data sources (DB name, API docs, owner)?
4
Read-only or read-write?
5
Staging environment available?
6
HITL approvers (names, roles)?
7
Headless, dashboard, or hybrid?
8
How analysts reach dashboard (VPN/SSO URL)?
9
LLM provider allowed (Anthropic/OpenAI/Ollama in VPC)?
10
IT security contact for sign-off?
11
Hypercare window (2 vs 4 weeks)?
12
Go-live date target?
6. Go-live checklist (joint)
Pre-go-live
Go-live day
Post-go-live
7. Deliverables (this ticket)
Documentation
Per-client (each pilot)
Engineering (as needed per vertical)
8. Definition of done
Ticket done (playbook published):
Per-client integration done:
9. Related links
Version: 2026-06-28 — Complete client integration, IT sign-off, and hypercare
Overview
Type: INFO — Client integration & go-live playbook
Audience: Delivery engineers, client DevOps, client IT/security, CS hypercare
Related: #13 Deployment Case Study · #14 Storage Architecture · engineX-internal #5 Onboarding runbook · engineX-internal #6 Security brief
This ticket is the complete client integration guide for taking a pilot from deployed EngineX to production with real systems — not mocks. It covers:
Use alongside #13 (install) and #14 (storage).
Ticket metadata
1. Integration lifecycle (end-to-end)
2. Custom agent wiring — real DB/APIs (not mocks)
2.1 What “mock → real” means
Shipped templates often include demo tools that return hardcoded JSON. Production pilots replace or extend these with tools that call the client’s systems.
hourly_trackingfetch_broker_transactions(),fetch_investor_logs()return static JSONlog_monitorGRAFANA_*,SLACK_*— usually minimal code changeagreement_analysissupport_triage--inputdeep_researchBRAVE_SEARCH_API_KEYor client-approved search APIRule: EngineX platform state stays on
~/.engine/(#14). The client’s database is accessed only through agent tools — never as the EngineX platform store.2.2 Integration patterns
@toolintools.pySELECTon replica, not primary write2.3 Custom tool implementation checklist
For each data source the agent needs:
~/.engine/credentials/or client secret manager → env injectionoutput_keys./engine validate <agent>passes with new tools registered./engine run <agent> --input '...'against staging data firstCode locations:
examples/templates/<agent>/tools.py(@tooldecorator)examples/templates/<agent>/mcp_servers.json./engine setup-credentials examples/templates/<agent>examples/templates/integrations/README.md2.4 Example: hourly_tracking → real Postgres (illustrative)
Replace mock fetch tools with read-only SQL against client replica:
Client provides:
2.5 Example: log_monitor (minimal wiring)
Often no custom code — configure env only:
Deploy with systemd:
examples/templates/log_monitor/deploy/engine-log-monitor.service2.6 Per-integration credential matrix
.envor~/.engine/credentials3. Client IT sign-off — VPN, TLS, network
3.1 Architecture with security boundary
Principle:
:8787is never exposed directly to the public internet in production.3.2 IT security review checklist (client IT)
Provide this to client security team for sign-off:
Network
Dashboard access (
./engine serve):8787backendExample reverse proxy (nginx sketch)
EngineX bind (internal only):
./engine serve --host 127.0.0.1 --port 8787 # or --host 0.0.0.0 only if SG restricts to proxy subnetSecrets & data
ENGINE_CREDENTIAL_KEYset;~/.engineon encrypted volume (#14)~/.enginedocumentedAccess & audit
Sign-off artifact
3.3 Headless-only clients (no dashboard)
If pilot is headless only (
./engine run --daemon)::8787exposure required4. Hypercare — first 2–4 weeks after go-live
4.1 Hypercare model
4.2 Hypercare daily checklist (EngineX)
~/.enginedisk usage within limits4.3 Hypercare daily checklist (client)
4.4 Common hypercare issues
:87874.5 Hypercare exit criteria (handoff to steady state)
5. Kickoff discovery worksheet (complete before wiring)
Collect in kickoff call — blocks custom integration:
6. Go-live checklist (joint)
Pre-go-live
./engine validate <agent>passes in staging~/.enginevolume mounted + backup verifiedGo-live day
Post-go-live
7. Deliverables (this ticket)
Documentation
Per-client (each pilot)
Engineering (as needed per vertical)
tools.py8. Definition of done
Ticket done (playbook published):
Per-client integration done:
9. Related links
examples/templates/integrations/README.mdVersion: 2026-06-28 — Complete client integration, IT sign-off, and hypercare