Layered: routes -> services -> repositories -> db, over PostgreSQL 18 with split roles (findr_migrator for DDL, findr_app for DML). Keycloak JWT auth with per-endpoint scope guards. Drizzle migrations run with the DDL role at container start. Pick-by-light: one ESP32 controller drives one WS2812 chain through several boxes; each box owns a contiguous LED slice. MQTT contract in src/lib/mqtt-topics.ts / docs/mqtt.md. /v1/pick controls light/idle/off and /v1/boxes + /v1/controllers manage the strip mapping. Reference resource /v1/parts wired end to end. Vitest, Biome, multi-stage Dockerfile, local compose.yml with Postgres. Signed-off-by: Peter Siegmund <mars3142@noreply.mars3142.dev>
26 lines
660 B
JSON
26 lines
660 B
JSON
{
|
|
"$schema": "https://biomejs.dev/schemas/1.9.4/schema.json",
|
|
"vcs": { "enabled": true, "clientKind": "git", "useIgnoreFile": true },
|
|
"files": { "ignore": ["dist", "drizzle", "node_modules"] },
|
|
"formatter": {
|
|
"enabled": true,
|
|
"indentStyle": "space",
|
|
"indentWidth": 2,
|
|
"lineWidth": 100
|
|
},
|
|
"organizeImports": { "enabled": true },
|
|
"linter": {
|
|
"enabled": true,
|
|
"rules": {
|
|
"recommended": true,
|
|
"style": {
|
|
"noNonNullAssertion": "off",
|
|
"useNamingConvention": "off"
|
|
}
|
|
}
|
|
},
|
|
"javascript": {
|
|
"formatter": { "quoteStyle": "double", "trailingCommas": "all", "semicolons": "always" }
|
|
}
|
|
}
|