Files
dashback/README.md
2026-08-02 19:04:56 +02:00

64 lines
1.4 KiB
Markdown

# dashback
Backend API for Dash — Google SSO auth, MSSQL allowlist, and session cookies.
## Setup
```bash
cp .env.example .env
npm install
```
Configure `.env` (see `.env.example`). Required for auth: `GOOGLE_CLIENT_ID`, `JWT_SECRET`, and `CORS_ORIGINS`.
## Run
```bash
npm start
```
Default port: `4208`.
## API
See [docs/api](docs/api/README.md) for endpoints, auth flow, and frontend integration.
Docs are generated from `@openapi` JSDoc on route handlers:
```bash
npm run docs:api
```
That writes `docs/api/openapi.json` and per-route Markdown under `docs/api/routes/`.
### 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` (Name + Slug in Firmensprache) |
## Users
Manage the email allowlist:
```bash
npm run manage-users
```