Files
dashlibstorage/API.companysetting.md
seb f302cda39e feat(numbers): add number sequences store; restrict companysetting keys
- Add `numbers` store module with `list` and `update` methods backed by
  the `numbers` table (prefix, padding, next) per company.
- Add sql queries LIST_BY_COMPANY, GET_BY_COMPANY_AND_ID, UPDATE_...
- Regenerate and wire API docs for `numbers`.

companysetting:
- Remove the `delete` endpoint (settings are now upsert/read only).
- Restrict `set` to a fixed allow-list of keys:
  ui.theme, keys.tavily, keys.openrouter, labelprinter.addr, labelprinter.type.
- Drop DELETE_BY_COMPANY_AND_KEY sql and the delete store file.

Docs: update README, API.md, API.companysetting.md, API.numbers.md.
2026-08-08 09:03:51 +02:00

86 lines
2.4 KiB
Markdown

# companysetting
This document is auto-generated from the JSDoc comments in `src/store` by running `npm run api-doc`.
## `companysetting.get`
*Source: `src/store/companysetting/get.js`*
Returns a single company setting by key for the user's selected company.
**Parameters**
| Name | Type | Description |
| --- | --- | --- |
| `googleAuthId` | `number` | The id of the Google auth user. |
| `key` | `string` | The setting key. |
| `[options]` | `object` | Optional options. |
| `[options.frontendOnly]` | `boolean` | Only return the setting if it is frontend-visible. |
**Returns**
`Promise<{key: string, value: string, frontend: boolean}|undefined>` — The setting, or `undefined` if not found.
**Example**
```js
const setting = await store.companysetting.get(42, 'theme');
// => { key, value, frontend }
```
## `companysetting.list`
*Source: `src/store/companysetting/list.js`*
Lists the settings of the user's selected company, optionally only frontend-visible ones.
**Parameters**
| Name | Type | Description |
| --- | --- | --- |
| `googleAuthId` | `number` | The id of the Google auth user. |
| `[options]` | `object` | Optional options. |
| `[options.frontendOnly]` | `boolean` | Only return frontend-visible settings. |
**Returns**
`Promise<Array<{key: string, value: string, frontend: boolean}>>` — The settings.
**Example**
```js
const settings = await store.companysetting.list(42, { frontendOnly: true });
// => [{ key, value, frontend }]
```
## `companysetting.set`
*Source: `src/store/companysetting/set.js`*
Sets (upserts) a company setting by key for the user's selected company. Only a fixed allow-list of keys can be set: `ui.theme`, `keys.tavily`, `keys.openrouter`, `labelprinter.addr`, `labelprinter.type`.
**Parameters**
| Name | Type | Description |
| --- | --- | --- |
| `googleAuthId` | `number` | The id of the Google auth user. |
| `input` | `object` | The setting input. |
| `input.key` | `string` | The setting key (must be in the allow-list). |
| `input.value` | `string` | The setting value. |
| `[input.frontend]` | `boolean` | Whether the setting is frontend-visible. |
**Returns**
`Promise<{key: string, value: string, frontend: boolean}>` — The upserted setting.
**Throws**
`Error` — If the input is invalid.
**Example**
```js
const setting = await store.companysetting.set(42, { key: 'ui.theme', value: 'dark' });
// => { key, value, frontend }
```