2026-10-30 17:28:25 +01:00
u
2026-10-11 12:58:15 +02:00
u
2026-10-04 20:47:16 +02:00
u
2026-10-30 16:56:27 +01:00
u
2026-10-24 05:13:13 +02:00
u
2026-10-30 11:54:16 +00:00
u
2026-10-30 17:28:25 +01:00
u
2026-10-27 12:38:20 +01:00
u
2026-10-25 12:13:29 +01:00
u
2026-10-26 22:49:40 +01:00
u
2026-10-13 13:21:14 +02:00
u
2026-10-18 03:15:23 +02:00
u
2026-10-18 03:15:23 +02:00
u
2026-10-30 16:10:07 +01:00
u
2026-10-13 13:21:14 +02:00
u
2026-10-18 14:29:01 +02:00
u
2026-10-28 01:51:54 +01:00
u
2026-10-30 11:54:04 +01:00
u
2026-10-13 13:21:14 +02:00
u
2026-10-14 13:44:53 +02:00
u
2026-10-26 23:09:23 +01:00
u
2026-10-27 17:18:08 +01:00
u
2026-10-12 03:10:35 +02:00

dashback

Backend API for Dash — Google SSO auth, MSSQL allowlist, and session cookies.

Setup

cp .env.example .env
npm install

Configure .env (see .env.example). Required for auth: GOOGLE_CLIENT_ID, JWT_SECRET, and CORS_ORIGINS.

Run

npm start

Default port: 4208.

API

See docs/api for endpoints, auth flow, and frontend integration.

Docs are generated from @openapi JSDoc on route handlers:

npm run docs:api
npm run api-graph     # regenerate api-graph.svg + api-graph.dot

That writes docs/api/routes.md, docs/api/routes-all.md, and per-route Markdown under docs/api/routes/. npm run api-graph generates api-graph.svg and api-graph.dot visualizing the API resources, endpoints, and dataflow relationships. There is no generated openapi.json on disk — the interactive Swagger UI at /docs/ builds the spec from the same @openapi JSDoc at runtime (src/api/openapiSpec.js).

Function review files

Create one JavaScript file per function in the project:

npm run review:functions

The generated files are written to output/ and include each function's source filename and line numbers. The same directory also contains functions.txt, an index of source filenames, line numbers, and function signatures. Existing generated function files and the index are replaced each time the command runs. Dependencies, runtime data, and the output directory itself are excluded from the scan.

Brands (company-scoped, selectedCompanyId aus der Session)

Methode Route Store-Methode
GET /api/brand brand.list
PUT /api/brand brand.upsert
DELETE /api/brand/:id brand.delete

Artikel-Felder (liefern dasselbe Shape wie GET /api/article/:sku)

Methode Route Store-Methode
PUT /api/article/:sku/eans article.setEansBySku
PUT /api/article/:sku/brand article.setBrandIdBySku
PUT /api/article/:sku/weight article.setWeightBySku
PUT /api/article/:sku/categories article.setCategoryIdsBySku

Kategorien

Methode Route Store-Methode
PATCH /api/category/:id category.rename und/oder category.move (Name+Slug und/oder Verschieben unter neuen Eltern)
PUT /api/category/order category.order (Geschwister-Sortierung unter einem Elternteil)

Public Product Catalog (ohne Auth, company-scoped)

Methode Route Beschreibung
GET /api/public/:companyId/categories Liefert den Kategoriebaum der Firma
GET /api/public/:companyId/articles Liefert paginierte Artikelliste (optional gefiltert nach ?categoryId=, ?search=)
GET /api/public/:companyId/articles/:sku Liefert öffentliche Artikeldetails (Preise, Bilder, Kategorien, EANs, Varianten)

Users

Manage the email allowlist:

npm run manage-users
Description
No description provided
Readme 10 MiB
Languages
JavaScript 98.4%
CSS 1.1%
HTML 0.4%