← back to Tk11438 Postgres Migration
verification/fleet-classification/gracie-preflight.json
120 lines
{
"status": "ready for scoped approval; refresh baseline before execution",
"name": "gracie-internal",
"pid": 8186,
"restart_count": 1,
"fields": [
{
"label": "effective",
"PG": {
"host": "localhost",
"database": "dw_unified",
"port": "5432",
"socketHost": null,
"explicitRole": false
},
"PGHOST": null,
"DATA_SOURCE": null
},
{
"label": "effective.env",
"PG": {
"host": "localhost",
"database": "dw_unified",
"port": "5432",
"socketHost": null,
"explicitRole": false
},
"PGHOST": null,
"DATA_SOURCE": null
},
{
"label": "saved",
"PG": {
"host": "localhost",
"database": "dw_unified",
"port": "5432",
"socketHost": null,
"explicitRole": false
},
"PGHOST": null,
"DATA_SOURCE": null
},
{
"label": "saved.env",
"PG": {
"host": "localhost",
"database": "dw_unified",
"port": "5432",
"socketHost": null,
"explicitRole": false
},
"PGHOST": null,
"DATA_SOURCE": null
}
],
"source": {
"path": "/Users/macstudio3/Projects/gracie-internal/server.js",
"before_sha256": "b6a0dee64b777d1e3c41f806d93f51e44d803d3f8f300f0cc245cb75edf5406e",
"after_sha256": "744feaf4a863badb311ed7ebc34f57c9ae8405b706b0519bcb842229abe6f168",
"patch": "patches/gracie-server.patch"
},
"bundle_present": true,
"http_checks": [
{
"route": "/healthz",
"auth": "missing",
"status": 200,
"bytes": 11,
"body_sha256": "4062edaf750fb8074e7e83e0c9028c94e32468a8b6f1614774328ef045150f93"
},
{
"route": "/healthz",
"auth": "invalid",
"status": 200,
"bytes": 11,
"body_sha256": "4062edaf750fb8074e7e83e0c9028c94e32468a8b6f1614774328ef045150f93"
},
{
"route": "/healthz",
"auth": "valid",
"status": 200,
"bytes": 11,
"body_sha256": "4062edaf750fb8074e7e83e0c9028c94e32468a8b6f1614774328ef045150f93"
},
{
"route": "/api/products",
"auth": "missing",
"status": 401,
"bytes": 24,
"body_sha256": "45cceda8377a0f8cfb7a5dc927ee1760c648406764291c2032cbadad6e8e44fb"
},
{
"route": "/api/products",
"auth": "invalid",
"status": 401,
"bytes": 24,
"body_sha256": "45cceda8377a0f8cfb7a5dc927ee1760c648406764291c2032cbadad6e8e44fb"
},
{
"route": "/api/products",
"auth": "valid",
"status": 200,
"bytes": 188603,
"body_sha256": "b01acb69f4bd1d7d3c64d4dead18b84cf7f7026e9a702a2e9a77b08f66940264",
"product_count": 150
}
],
"email_sends": 0,
"application_imports": 0,
"requests_route_invoked": false,
"startup": "mountVendorRequests immediately runs CREATE TABLE/INDEX IF NOT EXISTS; restart is canonical DDL gated. Catalog may use JSONL; vendor requests still use PostgreSQL.",
"proposed_scope": [
"two source files only: server.js and lib/vendor-requests.js",
"PG URI socket query in exact Gracie effective/saved PM2 fields; preserve all other fields",
"one Gracie restart; existing startup DDL only; no POST /api/request and no email sends",
"verify auth boundaries, read-only catalog/request GET after startup, socket pool identity/no process TCP5432, saved/effective agreement",
"private file and scoped PM2 backups before apply; restore exact originals and restart only Gracie on regression"
]
}