Close the last three UI leftovers: shared staff HTML, cookie domain, stock Swagger label.
Some checks are pending
offline / test (push) Waiting to run

verae-staff-ui holds one review template for CS and access-staff.
Staff cookies take STAFF_COOKIE_DOMAIN for a reverse-proxy host.
/docs stays vendor Swagger with an integrator banner only.
This commit is contained in:
George Lambert 2026-09-11 18:22:57 -04:00
parent b68fefdea8
commit d8efffe8be
23 changed files with 368 additions and 44 deletions

View file

@ -8,6 +8,7 @@ import path from 'node:path';
import { fileURLToPath } from 'node:url';
import { SUBJECTS, billingRequest } from './nats-billing.js';
import { listCustomers, withCustomerName } from './names.js';
import { staffPageHtml } from './staff-page.js';
const PUBLIC = path.join(path.dirname(fileURLToPath(import.meta.url)), '..', 'public');
@ -44,7 +45,16 @@ const server = http.createServer(async (req, res) => {
}
}
res.writeHead(200, { 'content-type': 'text/html; charset=utf-8' });
res.end(fs.readFileSync(path.join(PUBLIC, 'index.html')));
res.end(
await staffPageHtml(
{
title: 'Customer service',
kicker: 'staff · customer service',
lede: 'Look up a customer by name. Review prepaid balance, credits, usage, and payments. Credit amounts are in dollars.',
},
path.join(PUBLIC, 'index.html'),
),
);
return;
}
if (req.method === 'GET' && url.pathname === '/health') {

View file

@ -0,0 +1,16 @@
import fs from 'node:fs';
import path from 'node:path';
import { pathToFileURL } from 'node:url';
export async function staffPageHtml(opts, fallbackPath) {
const sibling = path.join(path.dirname(fallbackPath), '..', '..', 'verae-staff-ui', 'src', 'load.js');
try {
if (fs.existsSync(sibling)) {
const { loadReviewHtml } = await import(pathToFileURL(sibling).href);
return loadReviewHtml(opts, fallbackPath);
}
} catch {
/* standalone clone */
}
return fs.readFileSync(fallbackPath, 'utf8');
}