Add PocketBase collections, APIs & migration docs
Introduce PocketBase workflow support, migration tooling, server APIs and documentation. Adds a set of PocketBase collection JSONs (order_items, order_items_v2, collection_pool, delivery_notes, delivery_note_items, repairs) and a large import manifest for workflow collections; includes docs describing MCP/API layer, migration audit, order-item schema and rollout plans. Adds server-side agent/MCP endpoints and services (api/mcp, api/v1/orders, collection-pool, order-items status, health) plus helper modules (pocketbase-admin, orders-service, order-item-status, agent-auth) and a migration script to create order_items_v2/collection_pool. UI: new pages for collection-pool, delivery-notes, repairs and several updates to orders/quotes pages, sidebar, tooltip and pb helpers/types. Also updates package.json (migration script and related changes) and global styles. Required env vars and suggested migration command are documented (e.g. NEXT_PUBLIC_POCKETBASE_URL, PB_ADMIN_EMAIL, PB_ADMIN_PASSWORD, ORDER_ITEMS_COLLECTION; run npm run pb:migrate:orders-v2).
2026-05-25 16:39:33 +00:00
|
|
|
import { NextRequest } from "next/server";
|
|
|
|
|
|
|
|
|
|
export function assertAgentAuth(req: NextRequest) {
|
|
|
|
|
const expected = process.env.AGENT_API_KEY;
|
|
|
|
|
if (!expected) {
|
|
|
|
|
throw new Error("AGENT_API_KEY is not configured.");
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
const authHeader = req.headers.get("authorization") || "";
|
|
|
|
|
const token = authHeader.startsWith("Bearer ") ? authHeader.slice(7) : "";
|
|
|
|
|
|
|
|
|
|
if (token !== expected) {
|
|
|
|
|
const error = new Error("Unauthorized");
|
|
|
|
|
(error as Error & { status?: number }).status = 401;
|
|
|
|
|
throw error;
|
|
|
|
|
}
|
2026-06-11 18:30:02 +00:00
|
|
|
}
|