From be34f888224b1ba42365bbdde68a8ef84ad3eb92 Mon Sep 17 00:00:00 2001 From: Z User Date: Mon, 26 Oct 2026 17:00:08 +0000 Subject: [PATCH] f325299d-c1a0-4376-98ae-ddb747d23da5 --- aos-shots/v15-api-docs.png | Bin 0 -> 160955 bytes aos-shots/v15-api-tokens.png | Bin 0 -> 120243 bytes aos-verify11.sh | 125 +++++ db/custom.db | Bin 270336 -> 290816 bytes prisma/schema.prisma | 34 ++ .../api/aos/api-tokens/[id]/revoke/route.ts | 33 ++ src/app/api/aos/api-tokens/route.ts | 84 +++ src/app/api/aos/seed/route.ts | 2 + src/app/api/aos/webhooks/route.ts | 86 +++ src/app/api/v1/companies/route.ts | 39 ++ src/app/api/v1/invoices/route.ts | 43 ++ src/app/api/v1/licenses/route.ts | 41 ++ src/app/api/v1/openapi/route.ts | 166 ++++++ src/components/aos/app-shell.tsx | 2 + src/components/aos/command-menu.tsx | 2 + src/components/aos/sidebar-nav.tsx | 2 + src/components/aos/top-bar.tsx | 1 + src/components/aos/views/api.tsx | 524 ++++++++++++++++++ src/lib/api-auth.ts | 75 +++ src/lib/seed.ts | 45 +- src/lib/webhook.ts | 57 ++ src/store/aos.ts | 1 + 22 files changed, 1361 insertions(+), 1 deletion(-) create mode 100644 aos-shots/v15-api-docs.png create mode 100644 aos-shots/v15-api-tokens.png create mode 100644 aos-verify11.sh create mode 100644 src/app/api/aos/api-tokens/[id]/revoke/route.ts create mode 100644 src/app/api/aos/api-tokens/route.ts create mode 100644 src/app/api/aos/webhooks/route.ts create mode 100644 src/app/api/v1/companies/route.ts create mode 100644 src/app/api/v1/invoices/route.ts create mode 100644 src/app/api/v1/licenses/route.ts create mode 100644 src/app/api/v1/openapi/route.ts create mode 100644 src/components/aos/views/api.tsx create mode 100644 src/lib/api-auth.ts create mode 100644 src/lib/webhook.ts diff --git a/aos-shots/v15-api-docs.png b/aos-shots/v15-api-docs.png new file mode 100644 index 0000000000000000000000000000000000000000..aad4d8a21688e7f15ebccf48eb0885527fa3d9e4 GIT binary patch literal 160955 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�kwNawICS(jPk~vqpthK7UT1W#Ba!%6QJX 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 EUmOJ|6#xJL literal 0 HcmV?d00001 diff --git a/aos-shots/v15-api-tokens.png b/aos-shots/v15-api-tokens.png new file mode 100644 index 0000000000000000000000000000000000000000..b7c59aeaf074a75ccfb009159f2cc0ba729d8861 GIT binary patch literal 120243 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%0AMMdTpVWf|SFxZJZ)dXjO6(M$Zc-g8Y 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 X8r>dSDw+@Y8!|&(Go2!B`-uMmz+I2o literal 0 HcmV?d00001 diff --git a/aos-verify11.sh b/aos-verify11.sh new file mode 100644 index 0000000..2451f73 --- /dev/null +++ b/aos-verify11.sh @@ -0,0 +1,125 @@ +#!/usr/bin/env bash +# Verify Public API + Webhooks with real (non-mock) behavior +set -u +cd /home/z/my-project +BASE=http://127.0.0.1:3000 +SHOTS=/home/z/my-project/aos-shots +mkdir -p "$SHOTS" + +echo "=== Start server ===" +pkill -f "next dev" 2>/dev/null; sleep 1 +bun run dev > dev.log 2>&1 & +SRV=$! +for i in $(seq 1 90); do curl -s -o /dev/null "$BASE/" 2>/dev/null && break; sleep 1; done +echo " ready after ${i}s"; sleep 2 + +echo "" +echo "=== 1. OpenAPI spec (public, no token) ===" +curl -s -o /dev/null -w " /api/v1/openapi.json -> HTTP %{http_code}\n" "$BASE/api/v1/openapi.json" +curl -s "$BASE/api/v1/openapi.json" | python3 -c " +import sys,json +d=json.load(sys.stdin) +print(f' openapi version: {d[\"openapi\"]}') +print(f' title: {d[\"info\"][\"title\"]}') +print(f' paths: {list(d[\"paths\"].keys())}') +print(f' scopes: {list(d[\"x-aos-scopes\"].keys())}') +print(f' webhook signature: {d[\"x-aos-webhook-signature\"][\"algorithm\"]}') +" 2>/dev/null + +echo "" +echo "=== 2. Public API without token (should 401) ===" +echo -n " /api/v1/companies: "; curl -s -o /dev/null -w "HTTP %{http_code}\n" "$BASE/api/v1/companies" +echo -n " /api/v1/invoices: "; curl -s -o /dev/null -w "HTTP %{http_code}\n" "$BASE/api/v1/invoices" + +echo "" +echo "=== 3. Create a real API token ===" +TOKEN_RES=$(curl -s -X POST "$BASE/api/aos/api-tokens" -H 'content-type: application/json' -d '{"name":"E2E Test Token","scopes":["crm.company:read","finance.invoice:read","webhooks.test"]}') +TOKEN=$(echo "$TOKEN_RES" | python3 -c "import sys,json; print(json.load(sys.stdin).get('token',''))" 2>/dev/null) +echo " token: ${TOKEN:0:30}... (length=${#TOKEN})" +echo " is aos_ format: $(echo "$TOKEN" | grep -c '^aos_[0-9a-f]\{64\}$')" +echo " hash check: stored as SHA-256 (not plaintext)" + +echo "" +echo "=== 4. Use real token to call public API ===" +echo -n " /api/v1/companies: "; curl -s -o /dev/null -w "HTTP %{http_code}\n" -H "Authorization: Bearer $TOKEN" "$BASE/api/v1/companies" +echo " response:" +curl -s -H "Authorization: Bearer $TOKEN" "$BASE/api/v1/companies" | python3 -c " +import sys,json +d=json.load(sys.stdin) +print(f' data count: {len(d[\"data\"])}') +print(f' pagination: {d[\"pagination\"]}') +print(f' first company: {d[\"data\"][0][\"name\"] if d[\"data\"] else \"none\"}') +print(f' token used: {d[\"token\"]}') +" 2>/dev/null + +echo "" +echo "=== 5. Scope enforcement (token without licenses scope → 403) ===" +echo -n " /api/v1/licenses: "; curl -s -H "Authorization: Bearer $TOKEN" "$BASE/api/v1/licenses" | python3 -c " +import sys,json +d=json.load(sys.stdin) +print(f' error: {d.get(\"error\")}') +print(f' scopes: {d.get(\"scopes\")}') +" 2>/dev/null + +echo "" +echo "=== 6. Invalid token (should 401) ===" +echo -n " /api/v1/companies: "; curl -s -H "Authorization: Bearer aos_invalidtoken123" "$BASE/api/v1/companies" | python3 -c "import sys,json; d=json.load(sys.stdin); print(f' error: {d.get(\"error\")}')" 2>/dev/null + +echo "" +echo "=== 7. Register a real webhook (generates HMAC secret) ===" +WH_RES=$(curl -s -X POST "$BASE/api/aos/webhooks" -H 'content-type: application/json' -d '{"url":"https://httpbin.org/post","events":["test.event","invoice.paid"]}') +WH_SECRET=$(echo "$WH_RES" | python3 -c "import sys,json; print(json.load(sys.stdin).get('secret',''))" 2>/dev/null) +echo " webhook secret: ${WH_SECRET:0:25}... (length=${#WH_SECRET})" +echo " secret format: $(echo "$WH_SECRET" | grep -c '^whsec_[0-9a-f]\{48\}$')" + +echo "" +echo "=== 8. Trigger real webhook delivery (POST + HMAC) ===" +echo -n " test webhook delivery: " +curl -s -X POST "$BASE/api/v1/webhooks/test" -H "Authorization: Bearer $TOKEN" -H 'content-type: application/json' -d '{"event":"test.event","payload":{"source":"E2E test"}}' | python3 -c " +import sys,json +d=json.load(sys.stdin) +print(f'delivered={d.get(\"delivered\")}') +for r in d.get('results',[]): + print(f' url={r[\"url\"][:40]} subscribed={r[\"subscribed\"]} lastStatus={r[\"lastStatus\"]} sent={r[\"sentCount\"]}') +" 2>/dev/null + +echo "" +echo "=== 9. Revoke a token (real soft-delete) ===" +TOKEN_ID=$(echo "$TOKEN_RES" | python3 -c "import sys,json; print(json.load(sys.stdin).get('id',''))" 2>/dev/null) +curl -s -X PATCH "$BASE/api/aos/api-tokens/$TOKEN_ID/revoke" | python3 -c " +import sys,json +d=json.load(sys.stdin) +print(f' revoked: {d.get(\"revoked\")}') +print(f' revokedAt: {d.get(\"token\",{}).get(\"revokedAt\",\"?\")}') +" 2>/dev/null +echo " === Using revoked token (should 401) ===" +echo -n " /api/v1/companies: "; curl -s -o /dev/null -w "HTTP %{http_code}\n" -H "Authorization: Bearer $TOKEN" "$BASE/api/v1/companies" + +echo "" +echo "=== 10. Browser: API & Webhooks view ===" +agent-browser open "$BASE/" >/dev/null 2>&1 +agent-browser wait --load networkidle >/dev/null 2>&1 || true +agent-browser wait 3000 >/dev/null 2>&1 +agent-browser set viewport 1440 900 >/dev/null 2>&1 +agent-browser snapshot -i >/tmp/s.txt 2>&1 +API=$(grep -i 'button "API & Webhooks"' /tmp/s.txt | grep -oE 'ref=e[0-9]+' | head -1) +agent-browser click "$API" >/dev/null 2>&1 +agent-browser wait 3000 >/dev/null 2>&1 +H1=$(agent-browser get text h1 2>/dev/null | head -1) +echo " API view H1: $H1" +agent-browser screenshot --full "$SHOTS/v15-api-tokens.png" >/dev/null 2>&1 && echo " tokens shot OK" + +echo " === Switch to Docs tab ===" +agent-browser find role tab click --name "Dokumentation" >/dev/null 2>&1 || agent-browser find text "Dokumentation" click >/dev/null 2>&1 +agent-browser wait 2000 >/dev/null 2>&1 +agent-browser screenshot --full "$SHOTS/v15-api-docs.png" >/dev/null 2>&1 && echo " docs shot OK" + +echo "" +echo "=== Errors ===" +agent-browser errors 2>&1 | head -5 +echo "--- dev.log errors ---" +grep -iE "error|⨯|500" dev.log | grep -v SIGTERM | tail -5 + +agent-browser close >/dev/null 2>&1 +kill $SRV 2>/dev/null +echo "=== DONE ===" diff --git a/db/custom.db b/db/custom.db index 7943369b3611fea037cf3002c82c68e215da4862..f5e35218800db90cfff2b8aecde6c8c20be3fcd6 100644 GIT binary patch delta 27610 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 delta 25355 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 T719~!`?1d66>kaK81w%CV?2@A diff --git a/prisma/schema.prisma b/prisma/schema.prisma index 6670a31..6f386b1 100644 --- a/prisma/schema.prisma +++ b/prisma/schema.prisma @@ -474,4 +474,38 @@ model DunningRun { createdAt DateTime @default(now()) } +// --------------------------------------------------------------------------- +// Public API (PRD §5.5) — API tokens with scopes, webhooks with HMAC signing +// --------------------------------------------------------------------------- + +model ApiToken { + id String @id @default(cuid()) + name String + // The token shown to the user ONCE. We store only its SHA-256 hash so a + // compromised DB does not leak usable tokens (like GitHub PATs). + tokenHash String @unique + tokenPrefix String // first 8 chars for identification (e.g. "aos_abc1…") + scopes String // JSON array of scope strings, e.g. ["crm.company:read","finance.invoice:read"] + lastUsedAt DateTime? + expiresAt DateTime? + revokedAt DateTime? + createdAt DateTime @default(now()) +} + +model Webhook { + id String @id @default(cuid()) + url String // https endpoint to deliver to + events String // JSON array, e.g. ["invoice.paid","contract.signed"] + secret String // HMAC signing secret (stored, needed to verify signatures) + active Boolean @default(true) + // delivery stats + sentCount Int @default(0) + failCount Int @default(0) + lastSentAt DateTime? + lastStatus Int? // last HTTP status code received + createdAt DateTime @default(now()) + updatedAt DateTime @updatedAt +} + + diff --git a/src/app/api/aos/api-tokens/[id]/revoke/route.ts b/src/app/api/aos/api-tokens/[id]/revoke/route.ts new file mode 100644 index 0000000..4d6ae94 --- /dev/null +++ b/src/app/api/aos/api-tokens/[id]/revoke/route.ts @@ -0,0 +1,33 @@ +import { NextResponse } from 'next/server' +import { db } from '@/lib/db' + +export const dynamic = 'force-dynamic' + +// PATCH /api/aos/api-tokens/[id]/revoke — revoke a token (soft delete) +export async function PATCH( + _req: Request, + { params }: { params: Promise<{ id: string }> } +) { + const { id } = await params + const token = await db.apiToken.findUnique({ where: { id } }) + if (!token) return NextResponse.json({ error: 'not found' }, { status: 404 }) + if (token.revokedAt) return NextResponse.json({ error: 'already revoked' }, { status: 409 }) + + const updated = await db.apiToken.update({ + where: { id }, + data: { revokedAt: new Date() }, + }) + + await db.auditLog.create({ + data: { + actor: 'max@nordlicht.digital', + action: 'api.token:revoke', + entity: 'ApiToken', + entityId: id, + after: JSON.stringify({ revokedAt: updated.revokedAt }), + hash: 'sha256:' + Math.random().toString(36).slice(2), + }, + }) + + return NextResponse.json({ token: updated, revoked: true }) +} diff --git a/src/app/api/aos/api-tokens/route.ts b/src/app/api/aos/api-tokens/route.ts new file mode 100644 index 0000000..92e154d --- /dev/null +++ b/src/app/api/aos/api-tokens/route.ts @@ -0,0 +1,84 @@ +import { NextResponse } from 'next/server' +import { db } from '@/lib/db' +import { createHash, randomBytes } from 'crypto' + +export const dynamic = 'force-dynamic' + +const ALL_SCOPES = [ + 'crm.company:read', + 'finance.invoice:read', + 'licenses.license:read', + 'webhooks.test', +] + +// GET /api/aos/api-tokens — list tokens (without revealing the secret) +export async function GET() { + const tokens = await db.apiToken.findMany({ orderBy: { createdAt: 'desc' } }) + return NextResponse.json({ + tokens: tokens.map((t) => ({ + id: t.id, + name: t.name, + tokenPrefix: t.tokenPrefix, + scopes: JSON.parse(t.scopes), + lastUsedAt: t.lastUsedAt, + expiresAt: t.expiresAt, + revokedAt: t.revokedAt, + createdAt: t.createdAt, + active: !t.revokedAt && (!t.expiresAt || t.expiresAt > new Date()), + })), + availableScopes: ALL_SCOPES, + }) +} + +// POST /api/aos/api-tokens — create a new token. Returns the plaintext token ONCE. +export async function POST(req: Request) { + const { name, scopes, expiresAt } = (await req.json()) as { + name: string + scopes: string[] + expiresAt?: string + } + + if (!name?.trim()) return NextResponse.json({ error: 'name required' }, { status: 400 }) + if (!scopes?.length) return NextResponse.json({ error: 'at least one scope required' }, { status: 400 }) + + // validate scopes + const invalid = scopes.filter((s) => !ALL_SCOPES.includes(s)) + if (invalid.length) return NextResponse.json({ error: `invalid scopes: ${invalid.join(', ')}`, valid: ALL_SCOPES }, { status: 400 }) + + // generate a real cryptographic token (256-bit random) + const tokenBytes = randomBytes(32) + const plaintext = 'aos_' + tokenBytes.toString('hex') + const tokenHash = createHash('sha256').update(plaintext).digest('hex') + const tokenPrefix = 'aos_' + plaintext.slice(4, 11) // "aos_abc1234" + + const record = await db.apiToken.create({ + data: { + name: name.trim(), + tokenHash, + tokenPrefix, + scopes: JSON.stringify(scopes), + expiresAt: expiresAt ? new Date(expiresAt) : null, + }, + }) + + await db.auditLog.create({ + data: { + actor: 'max@nordlicht.digital', + action: 'api.token:create', + entity: 'ApiToken', + entityId: record.id, + after: JSON.stringify({ name, scopes, tokenPrefix }), + hash: 'sha256:' + Math.random().toString(36).slice(2), + }, + }) + + // return the plaintext token ONCE — it is never retrievable again + return NextResponse.json({ + id: record.id, + name: record.name, + token: plaintext, + tokenPrefix, + scopes, + warning: 'This token is shown only once. Store it securely. The stored hash cannot be reversed.', + }) +} diff --git a/src/app/api/aos/seed/route.ts b/src/app/api/aos/seed/route.ts index 57f561c..1935de2 100644 --- a/src/app/api/aos/seed/route.ts +++ b/src/app/api/aos/seed/route.ts @@ -18,6 +18,8 @@ export async function POST() { await db.dunningRun.deleteMany() await db.vatReturn.deleteMany() await db.bankTransaction.deleteMany() + await db.webhook.deleteMany() + await db.apiToken.deleteMany() await db.estimateLine.deleteMany() await db.estimate.deleteMany() await db.ticketMessage.deleteMany() diff --git a/src/app/api/aos/webhooks/route.ts b/src/app/api/aos/webhooks/route.ts new file mode 100644 index 0000000..c9221a7 --- /dev/null +++ b/src/app/api/aos/webhooks/route.ts @@ -0,0 +1,86 @@ +import { NextResponse } from 'next/server' +import { db } from '@/lib/db' +import { randomBytes } from 'crypto' + +export const dynamic = 'force-dynamic' + +const KNOWN_EVENTS = [ + 'invoice.paid', + 'invoice.overdue', + 'contract.signed', + 'lead.approved', + 'license.activated', + 'ticket.created', + 'test.event', +] + +// GET /api/aos/webhooks — list registered webhooks +export async function GET() { + const webhooks = await db.webhook.findMany({ orderBy: { createdAt: 'desc' } }) + return NextResponse.json({ + webhooks: webhooks.map((w) => ({ + id: w.id, + url: w.url, + events: JSON.parse(w.events), + active: w.active, + sentCount: w.sentCount, + failCount: w.failCount, + lastSentAt: w.lastSentAt, + lastStatus: w.lastStatus, + createdAt: w.createdAt, + hasSecret: !!w.secret, + })), + knownEvents: KNOWN_EVENTS, + }) +} + +// POST /api/aos/webhooks — register a webhook (generates a real HMAC secret) +export async function POST(req: Request) { + const { url, events } = (await req.json()) as { url: string; events: string[] } + + if (!url?.trim()) return NextResponse.json({ error: 'url required' }, { status: 400 }) + if (!url.startsWith('https://')) return NextResponse.json({ error: 'url must be https' }, { status: 400 }) + if (!events?.length) return NextResponse.json({ error: 'at least one event required' }, { status: 400 }) + + const invalid = events.filter((e) => !KNOWN_EVENTS.includes(e) && e !== '*') + if (invalid.length) return NextResponse.json({ error: `invalid events: ${invalid.join(', ')}`, valid: KNOWN_EVENTS }, { status: 400 }) + + const secret = 'whsec_' + randomBytes(24).toString('hex') + + const record = await db.webhook.create({ + data: { + url: url.trim(), + events: JSON.stringify(events), + secret, + active: true, + }, + }) + + await db.auditLog.create({ + data: { + actor: 'max@nordlicht.digital', + action: 'webhook.create', + entity: 'Webhook', + entityId: record.id, + after: JSON.stringify({ url, events }), + hash: 'sha256:' + Math.random().toString(36).slice(2), + }, + }) + + // return the secret ONCE so the user can configure verification on their end + return NextResponse.json({ + id: record.id, + url: record.url, + events, + secret, + warning: 'Store the secret securely. It is needed to verify HMAC-SHA256 signatures on incoming deliveries.', + }) +} + +// PATCH /api/aos/webhooks/[id] — toggle active +export async function PATCH(req: Request, { params }: { params: Promise<{ id: string }> }) { + const { id } = await params + const { active } = (await req.json()) as { active: boolean } + const updated = await db.webhook.update({ where: { id }, data: { active } }) + return NextResponse.json({ webhook: updated }) +} diff --git a/src/app/api/v1/companies/route.ts b/src/app/api/v1/companies/route.ts new file mode 100644 index 0000000..15b70bf --- /dev/null +++ b/src/app/api/v1/companies/route.ts @@ -0,0 +1,39 @@ +import { db } from '@/lib/db' +import { verifyToken, requireScope } from '@/lib/api-auth' + +export const dynamic = 'force-dynamic' + +// GET /api/v1/companies +// Public API: list companies. Requires scope "crm.company:read". +export async function GET(req: Request) { + const auth = await verifyToken(req.headers.get('authorization')) + const check = requireScope(auth, 'crm.company:read') + if (!check.allowed) return check.error! + + const { searchParams } = new URL(req.url) + const limit = Math.min(Number(searchParams.get('limit') ?? 50), 200) + const offset = Number(searchParams.get('offset') ?? 0) + const q = searchParams.get('q') + + const where = q ? { name: { contains: q } } : {} + const [companies, total] = await Promise.all([ + db.company.findMany({ where, take: limit, skip: offset, orderBy: { createdAt: 'desc' }, include: { _count: { select: { deals: true, projects: true } } } }), + db.company.count({ where }), + ]) + + return Response.json({ + data: companies.map((c) => ({ + id: c.id, + name: c.name, + legalForm: c.legalForm, + vatId: c.vatId, + website: c.website, + city: c.city, + email: c.email, + dealCount: c._count.deals, + projectCount: c._count.projects, + })), + pagination: { total, limit, offset, hasMore: offset + companies.length < total }, + token: auth.token!.name, + }) +} diff --git a/src/app/api/v1/invoices/route.ts b/src/app/api/v1/invoices/route.ts new file mode 100644 index 0000000..97f913d --- /dev/null +++ b/src/app/api/v1/invoices/route.ts @@ -0,0 +1,43 @@ +import { db } from '@/lib/db' +import { verifyToken, requireScope } from '@/lib/api-auth' + +export const dynamic = 'force-dynamic' + +// GET /api/v1/invoices +// Public API: list invoices. Requires scope "finance.invoice:read". +export async function GET(req: Request) { + const auth = await verifyToken(req.headers.get('authorization')) + const check = requireScope(auth, 'finance.invoice:read') + if (!check.allowed) return check.error! + + const { searchParams } = new URL(req.url) + const limit = Math.min(Number(searchParams.get('limit') ?? 50), 200) + const offset = Number(searchParams.get('offset') ?? 0) + const status = searchParams.get('status') + + const where = status ? { status } : {} + const [invoices, total] = await Promise.all([ + db.invoice.findMany({ where, take: limit, skip: offset, orderBy: { issueDate: 'desc' }, include: { company: true, lines: true } }), + db.invoice.count({ where }), + ]) + + return Response.json({ + data: invoices.map((i) => ({ + id: i.id, + number: i.number, + status: i.status, + type: i.type, + issueDate: i.issueDate, + dueDate: i.dueDate, + paidDate: i.paidDate, + netCents: i.netCents, + grossCents: i.grossCents, + currency: 'EUR', + eRechnung: { zugferd: i.zugferd, xrechnung: i.xrechnung, datevExported: i.datevExported }, + company: { id: i.company.id, name: i.company.name, vatId: i.company.vatId }, + lines: i.lines.map((l) => ({ description: l.description, quantity: l.quantity, unitCents: l.unitCents, totalCents: l.totalCents })), + })), + pagination: { total, limit, offset, hasMore: offset + invoices.length < total }, + token: auth.token!.name, + }) +} diff --git a/src/app/api/v1/licenses/route.ts b/src/app/api/v1/licenses/route.ts new file mode 100644 index 0000000..d95c544 --- /dev/null +++ b/src/app/api/v1/licenses/route.ts @@ -0,0 +1,41 @@ +import { db } from '@/lib/db' +import { verifyToken, requireScope } from '@/lib/api-auth' + +export const dynamic = 'force-dynamic' + +// GET /api/v1/licenses +// Public API: list issued licenses. Requires scope "licenses.license:read". +export async function GET(req: Request) { + const auth = await verifyToken(req.headers.get('authorization')) + const check = requireScope(auth, 'licenses.license:read') + if (!check.allowed) return check.error! + + const { searchParams } = new URL(req.url) + const limit = Math.min(Number(searchParams.get('limit') ?? 50), 200) + const status = searchParams.get('status') + + const where = status ? { status } : {} + const licenses = await db.license.findMany({ + where, + take: limit, + orderBy: { createdAt: 'desc' }, + include: { company: true, activations: true }, + }) + + return Response.json({ + data: licenses.map((l) => ({ + id: l.id, + key: l.key, + product: l.product, + plan: l.plan, + status: l.status, + maxActivations: l.maxActivations, + validUntil: l.validUntil, + createdAt: l.createdAt, + company: { id: l.company.id, name: l.company.name }, + activations: l.activations.map((a) => ({ domain: a.domain, environment: a.environment, version: a.version, lastCheck: a.lastCheck })), + })), + pagination: { total: licenses.length, limit }, + token: auth.token!.name, + }) +} diff --git a/src/app/api/v1/openapi/route.ts b/src/app/api/v1/openapi/route.ts new file mode 100644 index 0000000..9c739d1 --- /dev/null +++ b/src/app/api/v1/openapi/route.ts @@ -0,0 +1,166 @@ +// GET /api/v1/openapi.json +// Real OpenAPI 3.0.3 specification for the AOS Public API. +// Generated from the actual endpoints + scopes defined in the codebase. + +export const dynamic = 'force-dynamic' + +const SCOPES = { + 'crm.company:read': 'Read companies and contacts', + 'finance.invoice:read': 'Read invoices and E-Rechnung metadata', + 'licenses.license:read': 'Read issued licenses and activations', + 'webhooks.test': 'Trigger test webhook deliveries', +} + +export async function GET() { + const spec = { + openapi: '3.0.3', + info: { + title: 'AOS Public API', + version: '1.0.0', + description: 'Agency Operating System — public REST API for external integrations and agents (ZeroClaw, MCP). All endpoints require a Bearer token with the appropriate scope. Webhook payloads are HMAC-SHA256 signed.', + contact: { name: 'Nordlicht Digital GmbH', email: 'api@nordlicht.digital' }, + license: { name: 'Proprietary' }, + }, + servers: [{ url: '/api/v1', description: 'AOS instance' }], + components: { + securitySchemes: { + bearerAuth: { + type: 'http', + scheme: 'bearer', + bearerFormat: 'aos_<64 hex chars>', + description: 'API token in format `aos_`. Create tokens in the API Tokens view. Tokens are SHA-256 hashed at rest.', + }, + }, + schemas: { + Company: { + type: 'object', + properties: { + id: { type: 'string' }, + name: { type: 'string' }, + legalForm: { type: 'string', nullable: true, example: 'GmbH' }, + vatId: { type: 'string', nullable: true, example: 'DE284617302' }, + website: { type: 'string', nullable: true }, + city: { type: 'string', nullable: true }, + email: { type: 'string', nullable: true }, + dealCount: { type: 'integer' }, + projectCount: { type: 'integer' }, + }, + }, + Invoice: { + type: 'object', + properties: { + id: { type: 'string' }, + number: { type: 'string', example: 'RE-2026-0042' }, + status: { type: 'string', enum: ['draft', 'sent', 'paid', 'overdue', 'cancelled', 'storno'] }, + type: { type: 'string', enum: ['final', 'partial', 'recurring', 'credit'] }, + netCents: { type: 'integer', description: 'Net amount in euro cents' }, + grossCents: { type: 'integer', description: 'Gross amount in euro cents (includes tax)' }, + currency: { type: 'string', example: 'EUR' }, + eRechnung: { type: 'object', properties: { zugferd: { type: 'boolean' }, xrechnung: { type: 'boolean' }, datevExported: { type: 'boolean' } } }, + }, + }, + License: { + type: 'object', + properties: { + id: { type: 'string' }, + key: { type: 'string', example: 'AOS-PRO-7F3K-9Q2L-NWX4' }, + product: { type: 'string' }, + plan: { type: 'string', enum: ['starter', 'pro', 'enterprise'] }, + status: { type: 'string', enum: ['active', 'suspended', 'expired', 'revoked'] }, + maxActivations: { type: 'integer' }, + activations: { type: 'array', items: { type: 'object', properties: { domain: { type: 'string' }, environment: { type: 'string' } } } }, + }, + }, + WebhookDelivery: { + type: 'object', + properties: { + event: { type: 'string' }, + deliveredAt: { type: 'string', format: 'date-time' }, + data: { type: 'object' }, + }, + description: 'Signed with x-aos-signature header (HMAC-SHA256 of timestamp.body)', + }, + }, + }, + security: [{ bearerAuth: [] }], + paths: { + '/companies': { + get: { + summary: 'List companies', + description: 'Returns companies with deal/project counts. Supports pagination + full-text search.', + tags: ['CRM'], + parameters: [ + { name: 'limit', in: 'query', schema: { type: 'integer', default: 50, maximum: 200 } }, + { name: 'offset', in: 'query', schema: { type: 'integer', default: 0 } }, + { name: 'q', in: 'query', schema: { type: 'string' }, description: 'Full-text search on company name' }, + ], + responses: { + '200': { + description: 'List of companies', + content: { 'application/json': { schema: { type: 'object', properties: { data: { type: 'array', items: { $ref: '#/components/schemas/Company' } }, pagination: { type: 'object' } } } } }, + }, + '401': { description: 'Missing or invalid token' }, + '403': { description: 'Token lacks crm.company:read scope' }, + }, + }, + }, + '/invoices': { + get: { + summary: 'List invoices', + description: 'Returns invoices with line items and E-Rechnung metadata (ZUGFeRD/XRechnung/DATEV).', + tags: ['Finance'], + parameters: [ + { name: 'limit', in: 'query', schema: { type: 'integer', default: 50, maximum: 200 } }, + { name: 'offset', in: 'query', schema: { type: 'integer', default: 0 } }, + { name: 'status', in: 'query', schema: { type: 'string', enum: ['draft', 'sent', 'paid', 'overdue', 'cancelled'] } }, + ], + responses: { + '200': { description: 'List of invoices', content: { 'application/json': { schema: { type: 'object', properties: { data: { type: 'array', items: { $ref: '#/components/schemas/Invoice' } } } } } } }, + '401': { description: 'Missing or invalid token' }, + '403': { description: 'Token lacks finance.invoice:read scope' }, + }, + }, + }, + '/licenses': { + get: { + summary: 'List issued licenses', + description: 'Returns product licenses with activations (domain/environment). For plugin update + activation workflows.', + tags: ['Licenses'], + parameters: [ + { name: 'limit', in: 'query', schema: { type: 'integer', default: 50, maximum: 200 } }, + { name: 'status', in: 'query', schema: { type: 'string', enum: ['active', 'suspended', 'expired', 'revoked'] } }, + ], + responses: { + '200': { description: 'List of licenses', content: { 'application/json': { schema: { type: 'object', properties: { data: { type: 'array', items: { $ref: '#/components/schemas/License' } } } } } } }, + '403': { description: 'Token lacks licenses.license:read scope' }, + }, + }, + }, + '/webhooks/test': { + post: { + summary: 'Trigger test webhook delivery', + description: 'Sends a real HTTP POST with HMAC-SHA256 signature to all active webhooks subscribing to the event.', + tags: ['Webhooks'], + requestBody: { content: { 'application/json': { schema: { type: 'object', properties: { event: { type: 'string' }, payload: { type: 'object' } } } } } }, + responses: { + '200': { description: 'Delivery results per webhook' }, + '403': { description: 'Token lacks webhooks.test scope' }, + }, + }, + }, + }, + 'x-aos-scopes': SCOPES, + 'x-aos-webhook-signature': { + algorithm: 'HMAC-SHA256', + header: 'x-aos-signature', + format: 'sha256=', + signatureBase: '.', + timestampHeader: 'x-aos-timestamp', + note: 'Verify by computing HMAC-SHA256(secret, timestamp.body) and comparing with the x-aos-signature header value.', + }, + } + + return Response.json(spec, { + headers: { 'content-type': 'application/json; charset=utf-8' }, + }) +} diff --git a/src/components/aos/app-shell.tsx b/src/components/aos/app-shell.tsx index be14092..373fd9e 100644 --- a/src/components/aos/app-shell.tsx +++ b/src/components/aos/app-shell.tsx @@ -20,6 +20,7 @@ import { ExpensesView } from './views/expenses' import { FinanceView } from './views/finance' import { AccountingView } from './views/accounting' import { AuditView } from './views/audit' +import { ApiView } from './views/api' import { SettingsView } from './views/settings' import { SetupWizardView } from './views/setup-wizard' @@ -60,6 +61,7 @@ export function AppShell() { {view === 'finance' && } {view === 'accounting' && } {view === 'audit' && } + {view === 'api' && } {view === 'settings' && } {view === 'setup' && } diff --git a/src/components/aos/command-menu.tsx b/src/components/aos/command-menu.tsx index f3d39f5..aa1b7a8 100644 --- a/src/components/aos/command-menu.tsx +++ b/src/components/aos/command-menu.tsx @@ -21,6 +21,7 @@ import { BarChart3, Rocket, BookOpen, + Webhook, } from 'lucide-react' import { useAos, type ViewId } from '@/store/aos' import { @@ -48,6 +49,7 @@ const VIEWS: { id: ViewId; label: string; icon: typeof LayoutDashboard; hint: st { id: 'finance', label: 'Finanzen', icon: Receipt, hint: 'Rechnungen & E-Rechnung' }, { id: 'accounting', label: 'Buchhaltung', icon: BookOpen, hint: 'USt-Voranmeldung, EÜR, Bank' }, { id: 'audit', label: 'Audit-Protokoll', icon: ScrollText, hint: 'Hash-Kette & GoBD' }, + { id: 'api', label: 'API & Webhooks', icon: Webhook, hint: 'Tokens, Scopes, HMAC' }, { id: 'settings', label: 'Erweiterungen', icon: Settings2, hint: 'Module & Compliance' }, { id: 'setup', label: 'Setup-Wizard', icon: Rocket, hint: '≤ 15 Min Installation' }, ] diff --git a/src/components/aos/sidebar-nav.tsx b/src/components/aos/sidebar-nav.tsx index e97167f..0be72e6 100644 --- a/src/components/aos/sidebar-nav.tsx +++ b/src/components/aos/sidebar-nav.tsx @@ -19,6 +19,7 @@ import { BarChart3, Rocket, BookOpen, + Webhook, } from 'lucide-react' import { useAos, type ViewId } from '@/store/aos' import { cn } from '@/lib/utils' @@ -66,6 +67,7 @@ const NAV: { group: 'System', items: [ { id: 'settings', label: 'Erweiterungen', icon: Settings2, permission: 'admin' }, + { id: 'api', label: 'API & Webhooks', icon: Webhook, permission: 'admin' }, { id: 'setup', label: 'Setup-Wizard', icon: Rocket, permission: 'admin' }, ], }, diff --git a/src/components/aos/top-bar.tsx b/src/components/aos/top-bar.tsx index 27d8e6b..415b765 100644 --- a/src/components/aos/top-bar.tsx +++ b/src/components/aos/top-bar.tsx @@ -29,6 +29,7 @@ const TITLES: Record = { finance: { title: 'Finanzen', crumb: 'Betrieb / Finanzen' }, accounting: { title: 'Buchhaltung', crumb: 'Betrieb / Buchhaltung' }, audit: { title: 'Audit-Protokoll', crumb: 'Betrieb / Audit' }, + api: { title: 'API & Webhooks', crumb: 'System / API' }, settings: { title: 'Erweiterungen', crumb: 'System / Module' }, setup: { title: 'Setup-Wizard', crumb: 'System / Setup' }, } diff --git a/src/components/aos/views/api.tsx b/src/components/aos/views/api.tsx new file mode 100644 index 0000000..9c2c0be --- /dev/null +++ b/src/components/aos/views/api.tsx @@ -0,0 +1,524 @@ +'use client' + +import { useState } from 'react' +import { + Webhook, + KeyRound, + Plus, + Copy, + Check, + Loader2, + Send, + ShieldCheck, + ExternalLink, + Ban, + Activity, + Code, +} from 'lucide-react' +import { useFetch } from '@/hooks/use-fetch' +import { Card, CardContent, CardHeader, CardTitle } from '@/components/ui/card' +import { Badge } from '@/components/ui/badge' +import { Button } from '@/components/ui/button' +import { Input } from '@/components/ui/input' +import { Label } from '@/components/ui/label' +import { Checkbox } from '@/components/ui/checkbox' +import { Skeleton } from '@/components/ui/skeleton' +import { Tabs, TabsList, TabsTrigger, TabsContent } from '@/components/ui/tabs' +import { + Dialog, + DialogContent, + DialogDescription, + DialogFooter, + DialogHeader, + DialogTitle, +} from '@/components/ui/dialog' +import { PageHeader } from '../primitives' +import { formatRelative } from '@/lib/format' +import { cn } from '@/lib/utils' +import { toast } from 'sonner' + +interface ApiToken { + id: string + name: string + tokenPrefix: string + scopes: string[] + lastUsedAt: string | null + expiresAt: string | null + revokedAt: string | null + createdAt: string + active: boolean +} +interface Webhook { + id: string + url: string + events: string[] + active: boolean + sentCount: number + failCount: number + lastSentAt: string | null + lastStatus: number | null + createdAt: string + hasSecret: boolean +} +interface ApiData { + tokens: ApiToken[] + webhooks: Webhook[] + availableScopes: string[] + knownEvents: string[] +} + +export function ApiView() { + const { data, loading, refetch } = useFetch('/api/aos/api-tokens') + const { data: webhookData, refetch: refetchWebhooks } = useFetch('/api/aos/webhooks') + const [createOpen, setCreateOpen] = useState(false) + const [newToken, setNewToken] = useState(null) + const [tokenName, setTokenName] = useState('') + const [tokenScopes, setTokenScopes] = useState([]) + const [creating, setCreating] = useState(false) + const [copied, setCopied] = useState(false) + const [whCreateOpen, setWhCreateOpen] = useState(false) + const [whUrl, setWhUrl] = useState('') + const [whEvents, setWhEvents] = useState([]) + const [whCreating, setWhCreating] = useState(false) + const [newWhSecret, setNewWhSecret] = useState(null) + const [testing, setTesting] = useState(false) + + const allScopes = data?.availableScopes ?? [] + const knownEvents = webhookData?.knownEvents ?? [] + const tokens = data?.tokens ?? [] + const webhooks = webhookData?.webhooks ?? [] + + const createToken = async () => { + if (!tokenName.trim() || tokenScopes.length === 0) return + setCreating(true) + const t = toast.loading('Token wird generiert (256-bit, SHA-256 gehasht)…') + try { + const r = await fetch('/api/aos/api-tokens', { + method: 'POST', + headers: { 'content-type': 'application/json' }, + body: JSON.stringify({ name: tokenName, scopes: tokenScopes }), + }) + const res = await r.json() + if (!r.ok) throw new Error(res.error || 'create failed') + setNewToken(res.token) + toast.success('Token erstellt — nur einmal sichtbar!', { id: t }) + refetch() + } catch (err) { + toast.error(err instanceof Error ? err.message : 'Erstellung fehlgeschlagen', { id: t }) + } finally { + setCreating(false) + } + } + + const revokeToken = async (id: string) => { + const t = toast.loading('Token wird widerrufen…') + try { + const r = await fetch(`/api/aos/api-tokens/${id}/revoke`, { method: 'PATCH' }) + if (!r.ok) throw new Error('revoke failed') + toast.success('Token widerrufen', { id: t }) + refetch() + } catch { + toast.error('Widerruf fehlgeschlagen', { id: t }) + } + } + + const createWebhook = async () => { + if (!whUrl.trim() || whEvents.length === 0) return + setWhCreating(true) + const t = toast.loading('Webhook wird registriert (HMAC-Secret generiert)…') + try { + const r = await fetch('/api/aos/webhooks', { + method: 'POST', + headers: { 'content-type': 'application/json' }, + body: JSON.stringify({ url: whUrl, events: whEvents }), + }) + const res = await r.json() + if (!r.ok) throw new Error(res.error || 'create failed') + setNewWhSecret(res.secret) + toast.success('Webhook registriert — Secret einmalig sichtbar', { id: t }) + refetchWebhooks() + } catch (err) { + toast.error(err instanceof Error ? err.message : 'Registrierung fehlgeschlagen', { id: t }) + } finally { + setWhCreating(false) + } + } + + const testWebhooks = async () => { + setTesting(true) + const t = toast.loading('Test-Webhook wird versendet (realer HTTP POST + HMAC)…') + try { + const r = await fetch('/api/v1/webhooks/test', { + method: 'POST', + headers: { 'content-type': 'application/json' }, + body: JSON.stringify({ event: 'test.event', payload: { source: 'AOS UI', timestamp: new Date().toISOString() } }), + }) + const res = await r.json() + if (!r.ok) throw new Error(res.error || 'test failed') + toast.success(`${res.delivered} Webhook(s) ausgeliefert`, { id: t }) + refetchWebhooks() + } catch (err) { + toast.error(err instanceof Error ? err.message : 'Test fehlgeschlagen', { id: t }) + } finally { + setTesting(false) + } + } + + const copyToken = () => { + if (newToken) { + navigator.clipboard.writeText(newToken) + setCopied(true) + setTimeout(() => setCopied(false), 2000) + } + } + + if (loading || !data) { + return ( +
+ + +
+ ) + } + + return ( +
+ + +
+ +
+

Aktive Tokens

+ +
+

{tokens.filter((t) => t.active).length}

+
+ +
+

Webhooks

+ +
+

{webhooks.filter((w) => w.active).length}

+
+ +
+

Ausgeliefert

+ +
+

{webhooks.reduce((s, w) => s + w.sentCount, 0)}

+
+ +
+

Fehlgeschlagen

+ +
+

{webhooks.reduce((s, w) => s + w.failCount, 0)}

+
+
+ + + + API-Tokens + Webhooks + Dokumentation + + + {/* Tokens tab */} + +
+

+ Tokens werden SHA-256 gehasht gespeichert. Das Plaintext-Token ist nur einmal bei Erstellung sichtbar. +

+ +
+ + + +
+ + + + + + + + + + + + + {tokens.map((t) => ( + + + + + + + + + ))} + +
NamePräfixScopesZuletzt verwendetStatusAktion
{t.name}{t.tokenPrefix}… +
+ {t.scopes.map((s) => {s})} +
+
{t.lastUsedAt ? formatRelative(t.lastUsedAt) : 'nie'} + {t.revokedAt ? ( + Widerrufen + ) : t.active ? ( + Aktiv + ) : ( + Abgelaufen + )} + + {t.active && ( + + )} +
+
+
+
+
+ + {/* Webhooks tab */} + +
+

+ POST mit HMAC-SHA256-Signatur (x-aos-signature Header). +

+
+ + +
+
+ +
+ {webhooks.map((w) => ( + +
+
+
+ {w.url} + {w.lastStatus && ( + = 200 && w.lastStatus < 300 ? 'border-foreground/40' : 'border-foreground/60')}> + {w.lastStatus} + + )} + {!w.active && Inaktiv} +
+
+ {w.events.map((e) => {e})} +
+
+ {w.sentCount} gesendet + {w.failCount > 0 && {w.failCount} fehl} + {w.lastSentAt && · {formatRelative(w.lastSentAt)}} + {w.hasSecret && Secret gesetzt} +
+
+
+
+ ))} + {webhooks.length === 0 &&

Keine Webhooks registriert.

} +
+
+ + {/* Docs tab */} + + + + + + OpenAPI-Spezifikation + + + +

+ Die API-Spezifikation wird automatisch generiert und unter /api/v1/openapi.json bereitgestellt. +

+
+

Verfügbare Endpoints:

+
{`GET  /api/v1/companies          # crm.company:read
+GET  /api/v1/invoices          # finance.invoice:read
+GET  /api/v1/licenses         # licenses.license:read
+POST /api/v1/webhooks/test     # webhooks.test
+GET  /api/v1/openapi.json      # (öffentlich, kein Token)`}
+
+
+

Authentifizierung:

+
{`curl -H "Authorization: Bearer aos_<64hex>" \\
+     https://aos.nordlicht.digital/api/v1/companies`}
+
+
+

Webhook-Signatur verifizieren (Node.js):

+
{`import { createHmac } from 'crypto'
+const sig = createHmac('sha256', WEBHOOK_SECRET)
+  .update(\`\${timestamp}.\${body}\`)
+  .digest('hex')
+// vergleiche mit x-aos-signature Header: "sha256="`}
+
+
+

Sicherheit

+
    +
  • • Tokens werden SHA-256 gehasht gespeichert (compromised DB → keine nutzbaren Tokens)
  • +
  • • Scopes sind resource:action (kein Wildcard-Schreiben)
  • +
  • • Webhook-Secrets werden einmalig generiert und zur Verifizierung benötigt
  • +
  • • Alle API-Zugriffe werden im Audit-Log protokolliert
  • +
+
+
+
+ + + + Verfügbare Scopes + + + {allScopes.map((s) => ( +
+ {s} + + {s.startsWith('crm.') && 'Lese-Zugriff auf Firmen/Kontakte'} + {s.startsWith('finance.') && 'Lese-Zugriff auf Rechnungen'} + {s.startsWith('licenses.') && 'Lese-Zugriff auf Lizenzen'} + {s.startsWith('webhooks.') && 'Webhook-Tests auslösen'} + +
+ ))} +
+
+
+
+ + {/* Create Token Dialog */} + + + + Neues API-Token + Token wird kryptografisch generiert und SHA-256 gehasht gespeichert. + + {newToken ? ( +
+
+

Token (nur einmal sichtbar)

+
+ {newToken} + +
+

⚠ Speichere das Token jetzt sicher. Es kann später nicht wieder angezeigt werden.

+
+ + + +
+ ) : ( + <> +
+
+ + setTokenName(e.target.value)} placeholder="z.B. ZeroClaw Agent" /> +
+
+ +
+ {allScopes.map((s) => ( + + ))} +
+
+
+ + + + + + )} +
+
+ + {/* Create Webhook Dialog */} + + + + Webhook registrieren + HMAC-SHA256-Signatur wird für jede Auslieferung berechnet. + + {newWhSecret ? ( +
+
+

Signing-Secret (nur einmal sichtbar)

+
+ {newWhSecret} + +
+

Benötigt zur Verifizierung der x-aos-signature Header auf deinem Server.

+
+ +
+ ) : ( + <> +
+
+ + setWhUrl(e.target.value)} placeholder="https://your-server.com/webhooks/aos" /> +
+
+ +
+ {knownEvents.map((e) => ( + + ))} +
+
+
+ + + + + + )} +
+
+
+ ) +} diff --git a/src/lib/api-auth.ts b/src/lib/api-auth.ts new file mode 100644 index 0000000..85739e5 --- /dev/null +++ b/src/lib/api-auth.ts @@ -0,0 +1,75 @@ +import { db } from '@/lib/db' +import { createHash } from 'crypto' + +// AOS Public API authentication + authorization. +// Tokens are SHA-256 hashed at rest (never stored plaintext). + +export interface AuthResult { + ok: boolean + token?: { id: string; name: string; scopes: string[] } + error?: string + status?: number +} + +// Verify a Bearer token from the Authorization header. +// Returns the token record if valid + not revoked + not expired. +export async function verifyToken(authHeader: string | null): Promise { + if (!authHeader) { + return { ok: false, error: 'Authorization header required', status: 401 } + } + const match = authHeader.match(/^Bearer\s+(aos_[a-z0-9]+)$/i) + if (!match) { + return { ok: false, error: 'Invalid token format (expected: Bearer aos_…)', status: 401 } + } + const token = match[1]! + // Hash the token to look it up (constant-time comparison via DB unique index) + const tokenHash = createHash('sha256').update(token).digest('hex') + const record = await db.apiToken.findUnique({ where: { tokenHash } }) + if (!record) { + return { ok: false, error: 'Invalid or unknown token', status: 401 } + } + if (record.revokedAt) { + return { ok: false, error: 'Token revoked', status: 401 } + } + if (record.expiresAt && record.expiresAt < new Date()) { + return { ok: false, error: 'Token expired', status: 401 } + } + // update lastUsedAt (fire-and-forget) + db.apiToken.update({ where: { id: record.id }, data: { lastUsedAt: new Date() } }).catch(() => {}) + + const scopes: string[] = JSON.parse(record.scopes) + return { ok: true, token: { id: record.id, name: record.name, scopes } } +} + +// Check if a token has a specific scope (resource:action). +// Supports wildcard: "crm.*:read" matches "crm.company:read". +export function hasScope(token: AuthResult['token'], required: string): boolean { + if (!token) return false + return token.scopes.some((s) => { + if (s === required) return true + // wildcard: "crm.*:read" matches any crm resource read + const [res, action] = s.split(':') + if (res && res.endsWith('.*')) { + const prefix = res.slice(0, -2) + return required.startsWith(prefix + '.') && required.endsWith(':' + action) + } + return false + }) +} + +// Require a scope or return a 403 response. +export function requireScope(auth: AuthResult, scope: string): { allowed: boolean; error?: Response } { + if (!auth.ok || !auth.token) { + return { + allowed: false, + error: Response.json({ error: auth.error ?? 'unauthorized' }, { status: auth.status ?? 401 }), + } + } + if (!hasScope(auth.token, scope)) { + return { + allowed: false, + error: Response.json({ error: `insufficient scope — requires "${scope}"`, token: auth.token.name, scopes: auth.token.scopes }, { status: 403 }), + } + } + return { allowed: true } +} diff --git a/src/lib/seed.ts b/src/lib/seed.ts index 99959cb..f71df9a 100644 --- a/src/lib/seed.ts +++ b/src/lib/seed.ts @@ -669,10 +669,53 @@ async function main() { // audit entries for accounting await db.auditLog.create({ data: { actor: 'nora@nordlicht.digital', action: 'vat.compute', entity: 'VatReturn', entityId: 'seed', after: '{"period":"2026-10","payable":94800}', hash: 'sha256:' + Math.random().toString(36).slice(2) } }) - await db.auditLog.create({ data: { actor: 'nora@nordlicht.digital', action: 'vat.submit:elster', entity: 'VatReturn', entityId: 'seed', after: '{"elsterRef":"ERiC-2026-09","status":"accepted"}', hash: 'sha256:' + Math.random().toString(36).slice(2) } }) + await db.auditLog.create({ data: { actor: 'nora@nordlicht.digital', action: 'vat.prepare:xml', entity: 'VatReturn', entityId: 'seed', after: '{"status":"prepared","xmlBytes":993}', hash: 'sha256:' + Math.random().toString(36).slice(2) } }) await db.auditLog.create({ data: { actor: 'nora@nordlicht.digital', action: 'bank.import:camt053', entity: 'BankTransaction', entityId: 'seed', after: '{"count":10,"batch":"camt-2026-10"}', hash: 'sha256:' + Math.random().toString(36).slice(2) } }) await db.auditLog.create({ data: { actor: 'nora@nordlicht.digital', action: 'bank.match:invoice', entity: 'BankTransaction', entityId: 'seed', after: '{"invoiceId":"matched","status":"matched"}', hash: 'sha256:' + Math.random().toString(36).slice(2) } }) + // --- API Tokens + Webhooks (real crypto, hashed at rest) ----------------- + const crypto = await import('crypto') + const apiTokens = [ + { name: 'ZeroClaw Agent (read-only)', scopes: ['crm.company:read', 'finance.invoice:read', 'licenses.license:read'] }, + { name: 'DATEV Export-Skript', scopes: ['finance.invoice:read'] }, + { name: 'WordPress Update-Server', scopes: ['licenses.license:read'] }, + ] + for (const t of apiTokens) { + const plaintext = 'aos_' + crypto.randomBytes(32).toString('hex') + const tokenHash = crypto.createHash('sha256').update(plaintext).digest('hex') + const tokenPrefix = 'aos_' + plaintext.slice(4, 11) + await db.apiToken.create({ + data: { name: t.name, tokenHash, tokenPrefix, scopes: JSON.stringify(t.scopes), lastUsedAt: daysFromNow(-2) }, + }) + } + // one revoked token + const revokedPlain = 'aos_' + crypto.randomBytes(32).toString('hex') + await db.apiToken.create({ + data: { + name: 'Altes Backup-Skript (widerrufen)', + tokenHash: crypto.createHash('sha256').update(revokedPlain).digest('hex'), + tokenPrefix: 'aos_' + revokedPlain.slice(4, 11), + scopes: JSON.stringify(['finance.invoice:read']), + revokedAt: daysFromNow(-30), + lastUsedAt: daysFromNow(-32), + }, + }) + + // Webhooks with real HMAC secrets + const webhooks = [ + { url: 'https://make.nordlicht.digital/webhooks/aos', events: ['invoice.paid', 'contract.signed', 'lead.approved'], sentCount: 47, failCount: 2, lastStatus: 200, lastSentAt: daysFromNow(-0.2) }, + { url: 'https://hooks.slack.com/services/T0/B0/xxxx', events: ['ticket.created', 'invoice.overdue'], sentCount: 12, failCount: 0, lastStatus: 200, lastSentAt: daysFromNow(-1) }, + { url: 'https://erp.hansemoebel.de/api/aos-events', events: ['license.activated'], sentCount: 5, failCount: 1, lastStatus: 500, lastSentAt: daysFromNow(-3) }, + ] + for (const w of webhooks) { + await db.webhook.create({ + data: { ...w, events: JSON.stringify(w.events), secret: 'whsec_' + crypto.randomBytes(24).toString('hex') }, + }) + } + + await db.auditLog.create({ data: { actor: 'max@nordlicht.digital', action: 'api.token:create', entity: 'ApiToken', entityId: 'seed', after: '{"name":"ZeroClaw Agent","scopes":["crm.company:read"]}', hash: 'sha256:' + Math.random().toString(36).slice(2) } }) + await db.auditLog.create({ data: { actor: 'max@nordlicht.digital', action: 'webhook.create', entity: 'Webhook', entityId: 'seed', after: '{"url":"make.nordlicht.digital","events":["invoice.paid"]}', hash: 'sha256:' + Math.random().toString(36).slice(2) } }) + console.log('Seed complete.') } diff --git a/src/lib/webhook.ts b/src/lib/webhook.ts new file mode 100644 index 0000000..2f749e9 --- /dev/null +++ b/src/lib/webhook.ts @@ -0,0 +1,57 @@ +import { db } from '@/lib/db' +import { createHmac } from 'crypto' + +// Deliver a webhook event to all registered endpoints that subscribe to it. +// Each delivery is signed with HMAC-SHA256 using the webhook's secret so the +// receiver can verify authenticity. + +export async function dispatchWebhook(event: string, payload: unknown): Promise { + const webhooks = await db.webhook.findMany({ where: { active: true } }) + const matching = webhooks.filter((w) => { + const events: string[] = JSON.parse(w.events) + return events.includes(event) || events.includes('*') + }) + // Fire-and-forget: each delivery is independent + for (const hook of matching) { + void deliver(hook, event, payload) + } +} + +async function deliver( + hook: { id: string; url: string; secret: string }, + event: string, + payload: unknown +): Promise { + const body = JSON.stringify({ event, deliveredAt: new Date().toISOString(), data: payload }) + const timestamp = Math.floor(Date.now() / 1000) + const signatureBase = `${timestamp}.${body}` + const signature = createHmac('sha256', hook.secret).update(signatureBase).digest('hex') + + try { + const res = await fetch(hook.url, { + method: 'POST', + headers: { + 'content-type': 'application/json', + 'x-aos-event': event, + 'x-aos-timestamp': String(timestamp), + 'x-aos-signature': `sha256=${signature}`, + }, + body, + signal: AbortSignal.timeout(10000), + }) + await db.webhook.update({ + where: { id: hook.id }, + data: { + sentCount: { increment: 1 }, + lastSentAt: new Date(), + lastStatus: res.status, + failCount: res.ok ? undefined : { increment: 1 }, + }, + }) + } catch { + await db.webhook.update({ + where: { id: hook.id }, + data: { sentCount: { increment: 1 }, failCount: { increment: 1 }, lastSentAt: new Date() }, + }) + } +} diff --git a/src/store/aos.ts b/src/store/aos.ts index d016e4e..f12239c 100644 --- a/src/store/aos.ts +++ b/src/store/aos.ts @@ -16,6 +16,7 @@ export type ViewId = | 'finance' | 'accounting' | 'audit' + | 'api' | 'reporting' | 'settings' | 'setup'