@knowledge-stack/ksapi 3.3.1 → 3.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -441,6 +441,7 @@ docs/XlsxCellAnchorInputOrDocxParagraphAnchorInput.md
441
441
  docs/XlsxCellAnchorOutput.md
442
442
  docs/XlsxCellAnchorOutputOrDocxParagraphAnchorOutput.md
443
443
  docs/YidingConfig.md
444
+ docs/YidingConfigChange.md
444
445
  docs/YidingCursor.md
445
446
  docs/ZipFileResult.md
446
447
  docs/ZipIngestionStatusResponse.md
@@ -887,6 +888,7 @@ src/models/XlsxCellAnchorInputOrDocxParagraphAnchorInput.ts
887
888
  src/models/XlsxCellAnchorOutput.ts
888
889
  src/models/XlsxCellAnchorOutputOrDocxParagraphAnchorOutput.ts
889
890
  src/models/YidingConfig.ts
891
+ src/models/YidingConfigChange.ts
890
892
  src/models/YidingCursor.ts
891
893
  src/models/ZipFileResult.ts
892
894
  src/models/ZipIngestionStatusResponse.ts
package/README.md CHANGED
@@ -1,4 +1,4 @@
1
- # @knowledge-stack/ksapi@3.3.1
1
+ # @knowledge-stack/ksapi@3.4.0
2
2
 
3
3
  A TypeScript SDK client for the localhost API.
4
4
 
@@ -703,6 +703,7 @@ All URIs are relative to *http://localhost:8000*
703
703
  - [XlsxCellAnchorOutput](docs/XlsxCellAnchorOutput.md)
704
704
  - [XlsxCellAnchorOutputOrDocxParagraphAnchorOutput](docs/XlsxCellAnchorOutputOrDocxParagraphAnchorOutput.md)
705
705
  - [YidingConfig](docs/YidingConfig.md)
706
+ - [YidingConfigChange](docs/YidingConfigChange.md)
706
707
  - [YidingCursor](docs/YidingCursor.md)
707
708
  - [ZipFileResult](docs/ZipFileResult.md)
708
709
  - [ZipIngestionStatusResponse](docs/ZipIngestionStatusResponse.md)
@@ -732,7 +733,7 @@ and is automatically generated by the
732
733
  [OpenAPI Generator](https://openapi-generator.tech) project:
733
734
 
734
735
  - API version: `0.1.0`
735
- - Package version: `3.3.1`
736
+ - Package version: `3.4.0`
736
737
  - Generator version: `7.21.0`
737
738
  - Build package: `org.openapitools.codegen.languages.TypeScriptFetchClientCodegen`
738
739
 
@@ -9,7 +9,7 @@
9
9
  * https://openapi-generator.tech
10
10
  * Do not edit the class manually.
11
11
  */
12
- import type { YidingConfig } from './YidingConfig';
12
+ import type { YidingConfigChange } from './YidingConfigChange';
13
13
  import type { YidingCursor } from './YidingCursor';
14
14
  import type { ConnectionConfig } from './ConnectionConfig';
15
15
  /**
@@ -45,11 +45,11 @@ export interface UpdateDataSourceRequest {
45
45
  */
46
46
  connectionConfig?: ConnectionConfig | null;
47
47
  /**
48
- * Fresh YIDINGSYNC crawler config to replace the stored one (login, shop, start date, recurrence); rejected on a DIRECT connector. Changing ``cron`` re-arms the schedule. connection_config stays server-managed for YIDINGSYNC.
49
- * @type {YidingConfig}
48
+ * What a YIDINGSYNC connector's crawler config may still change: the panel password and the crawl recurrence, each optional and each merged into the stored config rather than replacing it. Which shop and from when are fixed at creation. Rejected on a DIRECT connector. Changing ``cron`` re-arms the schedule. connection_config stays server-managed for YIDINGSYNC.
49
+ * @type {YidingConfigChange}
50
50
  * @memberof UpdateDataSourceRequest
51
51
  */
52
- sourceConfig?: YidingConfig | null;
52
+ sourceConfig?: YidingConfigChange | null;
53
53
  /**
54
54
  * The crawl cursor, replaced whole. Written by the sync itself (the worker acts as the connector's owner) after each batch, so it records what has already been read. Moving it forward by hand makes the next run skip those days for good — the increment only re-scans what the cursor points at.
55
55
  * @type {YidingCursor}
@@ -11,7 +11,7 @@
11
11
  * https://openapi-generator.tech
12
12
  * Do not edit the class manually.
13
13
  */
14
- import { YidingConfigFromJSON, YidingConfigToJSON, } from './YidingConfig';
14
+ import { YidingConfigChangeFromJSON, YidingConfigChangeToJSON, } from './YidingConfigChange';
15
15
  import { YidingCursorFromJSON, YidingCursorToJSON, } from './YidingCursor';
16
16
  import { ConnectionConfigFromJSON, ConnectionConfigToJSON, } from './ConnectionConfig';
17
17
  export const UpdateDataSourceRequestPropertyValidationAttributesMap = {
@@ -37,7 +37,7 @@ export function UpdateDataSourceRequestFromJSONTyped(json, ignoreDiscriminator)
37
37
  'name': json['name'] == null ? undefined : json['name'],
38
38
  'parentPathPartId': json['parent_path_part_id'] == null ? undefined : json['parent_path_part_id'],
39
39
  'connectionConfig': json['connection_config'] == null ? undefined : ConnectionConfigFromJSON(json['connection_config']),
40
- 'sourceConfig': json['source_config'] == null ? undefined : YidingConfigFromJSON(json['source_config']),
40
+ 'sourceConfig': json['source_config'] == null ? undefined : YidingConfigChangeFromJSON(json['source_config']),
41
41
  'syncState': json['sync_state'] == null ? undefined : YidingCursorFromJSON(json['sync_state']),
42
42
  };
43
43
  }
@@ -52,7 +52,7 @@ export function UpdateDataSourceRequestToJSONTyped(value, ignoreDiscriminator =
52
52
  'name': value['name'],
53
53
  'parent_path_part_id': value['parentPathPartId'],
54
54
  'connection_config': ConnectionConfigToJSON(value['connectionConfig']),
55
- 'source_config': YidingConfigToJSON(value['sourceConfig']),
55
+ 'source_config': YidingConfigChangeToJSON(value['sourceConfig']),
56
56
  'sync_state': YidingCursorToJSON(value['syncState']),
57
57
  };
58
58
  }
@@ -0,0 +1,53 @@
1
+ /**
2
+ * Knowledge Stack API
3
+ * Knowledge Stack backend API for authentication and knowledge management. ## Integrating (RPA / machine clients) **Base URL.** Knowledge Stack is self-hosted — point at your own deployment host (see `servers`). The `localhost` entry is for local development only. **Authentication.** Send `Authorization: Bearer <api-key>` on every request. Mint an API key once via `POST /v1/api-keys` from a signed-in browser session; the raw `sk-user-...` secret is returned **only** at creation, so store it then. A key inherits its owning user\'s live tenant role and path permissions — create RPA keys from a least-privilege user, and set `expires_at` for rotation. The `ks_uat` cookie scheme is browser-only and cannot be used by headless clients. **Async work is polled, not pushed.** There are no outbound webhooks. - `POST /v1/documents/ingest` returns `201` immediately with a `workflow_id`; poll `GET /v1/system-jobs/document_versions/{workflow_id}` until `status` is terminal (anything other than `pending`/`processing`). The `Location` response header points at this poll resource. - `POST /v1/workflow-runs/{run_id}/start` returns `202`; poll `GET /v1/workflow-runs/{run_id}` until `execution_state` is `COMPLETED` or `FAILED`. The `Location` header points at the run resource. - `POST /v1/agent/ask` is **synchronous** — it blocks until the agent finishes and returns the answer inline. Use a generous HTTP timeout. **Pagination.** List endpoints accept `limit`/`offset` and return `{items, total, limit, offset}`. **Errors.** Every non-2xx body is `{detail, code, request_id}`. `code` is a stable value from a closed set (see the `ErrorResponse` schema\'s `code` enum) — branch on it rather than parsing `detail`. Quota rejections return `429` with a `Retry-After` header; transient lock contention returns a retryable `503`. Quote `request_id` (also the `x-request-id` response header) to support. **Idempotency.** `POST /v1/workflow-runs` accepts an `idempotency_key` to dedupe retried run creation. `agent/ask` charges one message *before* running and does not refund a client-cancelled call.
4
+ *
5
+ * The version of the OpenAPI document: 0.1.0
6
+ *
7
+ *
8
+ * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
9
+ * https://openapi-generator.tech
10
+ * Do not edit the class manually.
11
+ */
12
+ /**
13
+ *
14
+ * @export
15
+ * @interface YidingConfigChange
16
+ */
17
+ export interface YidingConfigChange {
18
+ /**
19
+ * Crawl recurrence, in the tenant's timezone
20
+ * @type {string}
21
+ * @memberof YidingConfigChange
22
+ */
23
+ cron?: string | null;
24
+ /**
25
+ * Write-only: omit it to keep the stored one
26
+ * @type {string}
27
+ * @memberof YidingConfigChange
28
+ */
29
+ password?: string | null;
30
+ }
31
+ export declare const YidingConfigChangePropertyValidationAttributesMap: {
32
+ [property: string]: {
33
+ maxLength?: number;
34
+ minLength?: number;
35
+ pattern?: string;
36
+ maximum?: number;
37
+ exclusiveMaximum?: boolean;
38
+ minimum?: number;
39
+ exclusiveMinimum?: boolean;
40
+ multipleOf?: number;
41
+ maxItems?: number;
42
+ minItems?: number;
43
+ uniqueItems?: boolean;
44
+ };
45
+ };
46
+ /**
47
+ * Check if a given object implements the YidingConfigChange interface.
48
+ */
49
+ export declare function instanceOfYidingConfigChange(value: object): value is YidingConfigChange;
50
+ export declare function YidingConfigChangeFromJSON(json: any): YidingConfigChange;
51
+ export declare function YidingConfigChangeFromJSONTyped(json: any, ignoreDiscriminator: boolean): YidingConfigChange;
52
+ export declare function YidingConfigChangeToJSON(json: any): YidingConfigChange;
53
+ export declare function YidingConfigChangeToJSONTyped(value?: YidingConfigChange | null, ignoreDiscriminator?: boolean): any;
@@ -0,0 +1,48 @@
1
+ /* tslint:disable */
2
+ /* eslint-disable */
3
+ /**
4
+ * Knowledge Stack API
5
+ * Knowledge Stack backend API for authentication and knowledge management. ## Integrating (RPA / machine clients) **Base URL.** Knowledge Stack is self-hosted — point at your own deployment host (see `servers`). The `localhost` entry is for local development only. **Authentication.** Send `Authorization: Bearer <api-key>` on every request. Mint an API key once via `POST /v1/api-keys` from a signed-in browser session; the raw `sk-user-...` secret is returned **only** at creation, so store it then. A key inherits its owning user\'s live tenant role and path permissions — create RPA keys from a least-privilege user, and set `expires_at` for rotation. The `ks_uat` cookie scheme is browser-only and cannot be used by headless clients. **Async work is polled, not pushed.** There are no outbound webhooks. - `POST /v1/documents/ingest` returns `201` immediately with a `workflow_id`; poll `GET /v1/system-jobs/document_versions/{workflow_id}` until `status` is terminal (anything other than `pending`/`processing`). The `Location` response header points at this poll resource. - `POST /v1/workflow-runs/{run_id}/start` returns `202`; poll `GET /v1/workflow-runs/{run_id}` until `execution_state` is `COMPLETED` or `FAILED`. The `Location` header points at the run resource. - `POST /v1/agent/ask` is **synchronous** — it blocks until the agent finishes and returns the answer inline. Use a generous HTTP timeout. **Pagination.** List endpoints accept `limit`/`offset` and return `{items, total, limit, offset}`. **Errors.** Every non-2xx body is `{detail, code, request_id}`. `code` is a stable value from a closed set (see the `ErrorResponse` schema\'s `code` enum) — branch on it rather than parsing `detail`. Quota rejections return `429` with a `Retry-After` header; transient lock contention returns a retryable `503`. Quote `request_id` (also the `x-request-id` response header) to support. **Idempotency.** `POST /v1/workflow-runs` accepts an `idempotency_key` to dedupe retried run creation. `agent/ask` charges one message *before* running and does not refund a client-cancelled call.
6
+ *
7
+ * The version of the OpenAPI document: 0.1.0
8
+ *
9
+ *
10
+ * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
11
+ * https://openapi-generator.tech
12
+ * Do not edit the class manually.
13
+ */
14
+ export const YidingConfigChangePropertyValidationAttributesMap = {
15
+ password: {
16
+ minLength: 1,
17
+ },
18
+ };
19
+ /**
20
+ * Check if a given object implements the YidingConfigChange interface.
21
+ */
22
+ export function instanceOfYidingConfigChange(value) {
23
+ return true;
24
+ }
25
+ export function YidingConfigChangeFromJSON(json) {
26
+ return YidingConfigChangeFromJSONTyped(json, false);
27
+ }
28
+ export function YidingConfigChangeFromJSONTyped(json, ignoreDiscriminator) {
29
+ if (json == null) {
30
+ return json;
31
+ }
32
+ return {
33
+ 'cron': json['cron'] == null ? undefined : json['cron'],
34
+ 'password': json['password'] == null ? undefined : json['password'],
35
+ };
36
+ }
37
+ export function YidingConfigChangeToJSON(json) {
38
+ return YidingConfigChangeToJSONTyped(json, false);
39
+ }
40
+ export function YidingConfigChangeToJSONTyped(value, ignoreDiscriminator = false) {
41
+ if (value == null) {
42
+ return value;
43
+ }
44
+ return {
45
+ 'cron': value['cron'],
46
+ 'password': value['password'],
47
+ };
48
+ }
@@ -395,6 +395,7 @@ export * from './XlsxCellAnchorInputOrDocxParagraphAnchorInput';
395
395
  export * from './XlsxCellAnchorOutput';
396
396
  export * from './XlsxCellAnchorOutputOrDocxParagraphAnchorOutput';
397
397
  export * from './YidingConfig';
398
+ export * from './YidingConfigChange';
398
399
  export * from './YidingCursor';
399
400
  export * from './ZipFileResult';
400
401
  export * from './ZipIngestionStatusResponse';
@@ -397,6 +397,7 @@ export * from './XlsxCellAnchorInputOrDocxParagraphAnchorInput';
397
397
  export * from './XlsxCellAnchorOutput';
398
398
  export * from './XlsxCellAnchorOutputOrDocxParagraphAnchorOutput';
399
399
  export * from './YidingConfig';
400
+ export * from './YidingConfigChange';
400
401
  export * from './YidingCursor';
401
402
  export * from './ZipFileResult';
402
403
  export * from './ZipIngestionStatusResponse';
@@ -9,7 +9,7 @@
9
9
  * https://openapi-generator.tech
10
10
  * Do not edit the class manually.
11
11
  */
12
- import type { YidingConfig } from './YidingConfig';
12
+ import type { YidingConfigChange } from './YidingConfigChange';
13
13
  import type { YidingCursor } from './YidingCursor';
14
14
  import type { ConnectionConfig } from './ConnectionConfig';
15
15
  /**
@@ -45,11 +45,11 @@ export interface UpdateDataSourceRequest {
45
45
  */
46
46
  connectionConfig?: ConnectionConfig | null;
47
47
  /**
48
- * Fresh YIDINGSYNC crawler config to replace the stored one (login, shop, start date, recurrence); rejected on a DIRECT connector. Changing ``cron`` re-arms the schedule. connection_config stays server-managed for YIDINGSYNC.
49
- * @type {YidingConfig}
48
+ * What a YIDINGSYNC connector's crawler config may still change: the panel password and the crawl recurrence, each optional and each merged into the stored config rather than replacing it. Which shop and from when are fixed at creation. Rejected on a DIRECT connector. Changing ``cron`` re-arms the schedule. connection_config stays server-managed for YIDINGSYNC.
49
+ * @type {YidingConfigChange}
50
50
  * @memberof UpdateDataSourceRequest
51
51
  */
52
- sourceConfig?: YidingConfig | null;
52
+ sourceConfig?: YidingConfigChange | null;
53
53
  /**
54
54
  * The crawl cursor, replaced whole. Written by the sync itself (the worker acts as the connector's owner) after each batch, so it records what has already been read. Moving it forward by hand makes the next run skip those days for good — the increment only re-scans what the cursor points at.
55
55
  * @type {YidingCursor}
@@ -19,7 +19,7 @@ exports.UpdateDataSourceRequestFromJSON = UpdateDataSourceRequestFromJSON;
19
19
  exports.UpdateDataSourceRequestFromJSONTyped = UpdateDataSourceRequestFromJSONTyped;
20
20
  exports.UpdateDataSourceRequestToJSON = UpdateDataSourceRequestToJSON;
21
21
  exports.UpdateDataSourceRequestToJSONTyped = UpdateDataSourceRequestToJSONTyped;
22
- const YidingConfig_1 = require("./YidingConfig");
22
+ const YidingConfigChange_1 = require("./YidingConfigChange");
23
23
  const YidingCursor_1 = require("./YidingCursor");
24
24
  const ConnectionConfig_1 = require("./ConnectionConfig");
25
25
  exports.UpdateDataSourceRequestPropertyValidationAttributesMap = {
@@ -45,7 +45,7 @@ function UpdateDataSourceRequestFromJSONTyped(json, ignoreDiscriminator) {
45
45
  'name': json['name'] == null ? undefined : json['name'],
46
46
  'parentPathPartId': json['parent_path_part_id'] == null ? undefined : json['parent_path_part_id'],
47
47
  'connectionConfig': json['connection_config'] == null ? undefined : (0, ConnectionConfig_1.ConnectionConfigFromJSON)(json['connection_config']),
48
- 'sourceConfig': json['source_config'] == null ? undefined : (0, YidingConfig_1.YidingConfigFromJSON)(json['source_config']),
48
+ 'sourceConfig': json['source_config'] == null ? undefined : (0, YidingConfigChange_1.YidingConfigChangeFromJSON)(json['source_config']),
49
49
  'syncState': json['sync_state'] == null ? undefined : (0, YidingCursor_1.YidingCursorFromJSON)(json['sync_state']),
50
50
  };
51
51
  }
@@ -60,7 +60,7 @@ function UpdateDataSourceRequestToJSONTyped(value, ignoreDiscriminator = false)
60
60
  'name': value['name'],
61
61
  'parent_path_part_id': value['parentPathPartId'],
62
62
  'connection_config': (0, ConnectionConfig_1.ConnectionConfigToJSON)(value['connectionConfig']),
63
- 'source_config': (0, YidingConfig_1.YidingConfigToJSON)(value['sourceConfig']),
63
+ 'source_config': (0, YidingConfigChange_1.YidingConfigChangeToJSON)(value['sourceConfig']),
64
64
  'sync_state': (0, YidingCursor_1.YidingCursorToJSON)(value['syncState']),
65
65
  };
66
66
  }
@@ -0,0 +1,53 @@
1
+ /**
2
+ * Knowledge Stack API
3
+ * Knowledge Stack backend API for authentication and knowledge management. ## Integrating (RPA / machine clients) **Base URL.** Knowledge Stack is self-hosted — point at your own deployment host (see `servers`). The `localhost` entry is for local development only. **Authentication.** Send `Authorization: Bearer <api-key>` on every request. Mint an API key once via `POST /v1/api-keys` from a signed-in browser session; the raw `sk-user-...` secret is returned **only** at creation, so store it then. A key inherits its owning user\'s live tenant role and path permissions — create RPA keys from a least-privilege user, and set `expires_at` for rotation. The `ks_uat` cookie scheme is browser-only and cannot be used by headless clients. **Async work is polled, not pushed.** There are no outbound webhooks. - `POST /v1/documents/ingest` returns `201` immediately with a `workflow_id`; poll `GET /v1/system-jobs/document_versions/{workflow_id}` until `status` is terminal (anything other than `pending`/`processing`). The `Location` response header points at this poll resource. - `POST /v1/workflow-runs/{run_id}/start` returns `202`; poll `GET /v1/workflow-runs/{run_id}` until `execution_state` is `COMPLETED` or `FAILED`. The `Location` header points at the run resource. - `POST /v1/agent/ask` is **synchronous** — it blocks until the agent finishes and returns the answer inline. Use a generous HTTP timeout. **Pagination.** List endpoints accept `limit`/`offset` and return `{items, total, limit, offset}`. **Errors.** Every non-2xx body is `{detail, code, request_id}`. `code` is a stable value from a closed set (see the `ErrorResponse` schema\'s `code` enum) — branch on it rather than parsing `detail`. Quota rejections return `429` with a `Retry-After` header; transient lock contention returns a retryable `503`. Quote `request_id` (also the `x-request-id` response header) to support. **Idempotency.** `POST /v1/workflow-runs` accepts an `idempotency_key` to dedupe retried run creation. `agent/ask` charges one message *before* running and does not refund a client-cancelled call.
4
+ *
5
+ * The version of the OpenAPI document: 0.1.0
6
+ *
7
+ *
8
+ * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
9
+ * https://openapi-generator.tech
10
+ * Do not edit the class manually.
11
+ */
12
+ /**
13
+ *
14
+ * @export
15
+ * @interface YidingConfigChange
16
+ */
17
+ export interface YidingConfigChange {
18
+ /**
19
+ * Crawl recurrence, in the tenant's timezone
20
+ * @type {string}
21
+ * @memberof YidingConfigChange
22
+ */
23
+ cron?: string | null;
24
+ /**
25
+ * Write-only: omit it to keep the stored one
26
+ * @type {string}
27
+ * @memberof YidingConfigChange
28
+ */
29
+ password?: string | null;
30
+ }
31
+ export declare const YidingConfigChangePropertyValidationAttributesMap: {
32
+ [property: string]: {
33
+ maxLength?: number;
34
+ minLength?: number;
35
+ pattern?: string;
36
+ maximum?: number;
37
+ exclusiveMaximum?: boolean;
38
+ minimum?: number;
39
+ exclusiveMinimum?: boolean;
40
+ multipleOf?: number;
41
+ maxItems?: number;
42
+ minItems?: number;
43
+ uniqueItems?: boolean;
44
+ };
45
+ };
46
+ /**
47
+ * Check if a given object implements the YidingConfigChange interface.
48
+ */
49
+ export declare function instanceOfYidingConfigChange(value: object): value is YidingConfigChange;
50
+ export declare function YidingConfigChangeFromJSON(json: any): YidingConfigChange;
51
+ export declare function YidingConfigChangeFromJSONTyped(json: any, ignoreDiscriminator: boolean): YidingConfigChange;
52
+ export declare function YidingConfigChangeToJSON(json: any): YidingConfigChange;
53
+ export declare function YidingConfigChangeToJSONTyped(value?: YidingConfigChange | null, ignoreDiscriminator?: boolean): any;
@@ -0,0 +1,56 @@
1
+ "use strict";
2
+ /* tslint:disable */
3
+ /* eslint-disable */
4
+ /**
5
+ * Knowledge Stack API
6
+ * Knowledge Stack backend API for authentication and knowledge management. ## Integrating (RPA / machine clients) **Base URL.** Knowledge Stack is self-hosted — point at your own deployment host (see `servers`). The `localhost` entry is for local development only. **Authentication.** Send `Authorization: Bearer <api-key>` on every request. Mint an API key once via `POST /v1/api-keys` from a signed-in browser session; the raw `sk-user-...` secret is returned **only** at creation, so store it then. A key inherits its owning user\'s live tenant role and path permissions — create RPA keys from a least-privilege user, and set `expires_at` for rotation. The `ks_uat` cookie scheme is browser-only and cannot be used by headless clients. **Async work is polled, not pushed.** There are no outbound webhooks. - `POST /v1/documents/ingest` returns `201` immediately with a `workflow_id`; poll `GET /v1/system-jobs/document_versions/{workflow_id}` until `status` is terminal (anything other than `pending`/`processing`). The `Location` response header points at this poll resource. - `POST /v1/workflow-runs/{run_id}/start` returns `202`; poll `GET /v1/workflow-runs/{run_id}` until `execution_state` is `COMPLETED` or `FAILED`. The `Location` header points at the run resource. - `POST /v1/agent/ask` is **synchronous** — it blocks until the agent finishes and returns the answer inline. Use a generous HTTP timeout. **Pagination.** List endpoints accept `limit`/`offset` and return `{items, total, limit, offset}`. **Errors.** Every non-2xx body is `{detail, code, request_id}`. `code` is a stable value from a closed set (see the `ErrorResponse` schema\'s `code` enum) — branch on it rather than parsing `detail`. Quota rejections return `429` with a `Retry-After` header; transient lock contention returns a retryable `503`. Quote `request_id` (also the `x-request-id` response header) to support. **Idempotency.** `POST /v1/workflow-runs` accepts an `idempotency_key` to dedupe retried run creation. `agent/ask` charges one message *before* running and does not refund a client-cancelled call.
7
+ *
8
+ * The version of the OpenAPI document: 0.1.0
9
+ *
10
+ *
11
+ * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
12
+ * https://openapi-generator.tech
13
+ * Do not edit the class manually.
14
+ */
15
+ Object.defineProperty(exports, "__esModule", { value: true });
16
+ exports.YidingConfigChangePropertyValidationAttributesMap = void 0;
17
+ exports.instanceOfYidingConfigChange = instanceOfYidingConfigChange;
18
+ exports.YidingConfigChangeFromJSON = YidingConfigChangeFromJSON;
19
+ exports.YidingConfigChangeFromJSONTyped = YidingConfigChangeFromJSONTyped;
20
+ exports.YidingConfigChangeToJSON = YidingConfigChangeToJSON;
21
+ exports.YidingConfigChangeToJSONTyped = YidingConfigChangeToJSONTyped;
22
+ exports.YidingConfigChangePropertyValidationAttributesMap = {
23
+ password: {
24
+ minLength: 1,
25
+ },
26
+ };
27
+ /**
28
+ * Check if a given object implements the YidingConfigChange interface.
29
+ */
30
+ function instanceOfYidingConfigChange(value) {
31
+ return true;
32
+ }
33
+ function YidingConfigChangeFromJSON(json) {
34
+ return YidingConfigChangeFromJSONTyped(json, false);
35
+ }
36
+ function YidingConfigChangeFromJSONTyped(json, ignoreDiscriminator) {
37
+ if (json == null) {
38
+ return json;
39
+ }
40
+ return {
41
+ 'cron': json['cron'] == null ? undefined : json['cron'],
42
+ 'password': json['password'] == null ? undefined : json['password'],
43
+ };
44
+ }
45
+ function YidingConfigChangeToJSON(json) {
46
+ return YidingConfigChangeToJSONTyped(json, false);
47
+ }
48
+ function YidingConfigChangeToJSONTyped(value, ignoreDiscriminator = false) {
49
+ if (value == null) {
50
+ return value;
51
+ }
52
+ return {
53
+ 'cron': value['cron'],
54
+ 'password': value['password'],
55
+ };
56
+ }
@@ -395,6 +395,7 @@ export * from './XlsxCellAnchorInputOrDocxParagraphAnchorInput';
395
395
  export * from './XlsxCellAnchorOutput';
396
396
  export * from './XlsxCellAnchorOutputOrDocxParagraphAnchorOutput';
397
397
  export * from './YidingConfig';
398
+ export * from './YidingConfigChange';
398
399
  export * from './YidingCursor';
399
400
  export * from './ZipFileResult';
400
401
  export * from './ZipIngestionStatusResponse';
@@ -413,6 +413,7 @@ __exportStar(require("./XlsxCellAnchorInputOrDocxParagraphAnchorInput"), exports
413
413
  __exportStar(require("./XlsxCellAnchorOutput"), exports);
414
414
  __exportStar(require("./XlsxCellAnchorOutputOrDocxParagraphAnchorOutput"), exports);
415
415
  __exportStar(require("./YidingConfig"), exports);
416
+ __exportStar(require("./YidingConfigChange"), exports);
416
417
  __exportStar(require("./YidingCursor"), exports);
417
418
  __exportStar(require("./ZipFileResult"), exports);
418
419
  __exportStar(require("./ZipIngestionStatusResponse"), exports);
@@ -10,7 +10,7 @@ Name | Type
10
10
  `name` | string
11
11
  `parentPathPartId` | string
12
12
  `connectionConfig` | [ConnectionConfig](ConnectionConfig.md)
13
- `sourceConfig` | [YidingConfig](YidingConfig.md)
13
+ `sourceConfig` | [YidingConfigChange](YidingConfigChange.md)
14
14
  `syncState` | [YidingCursor](YidingCursor.md)
15
15
 
16
16
  ## Example
@@ -0,0 +1,36 @@
1
+
2
+ # YidingConfigChange
3
+
4
+
5
+ ## Properties
6
+
7
+ Name | Type
8
+ ------------ | -------------
9
+ `cron` | string
10
+ `password` | string
11
+
12
+ ## Example
13
+
14
+ ```typescript
15
+ import type { YidingConfigChange } from '@knowledge-stack/ksapi'
16
+
17
+ // TODO: Update the object below with actual values
18
+ const example = {
19
+ "cron": null,
20
+ "password": null,
21
+ } satisfies YidingConfigChange
22
+
23
+ console.log(example)
24
+
25
+ // Convert the instance to a JSON string
26
+ const exampleJSON: string = JSON.stringify(example)
27
+ console.log(exampleJSON)
28
+
29
+ // Parse the JSON string back to an object
30
+ const exampleParsed = JSON.parse(exampleJSON) as YidingConfigChange
31
+ console.log(exampleParsed)
32
+ ```
33
+
34
+ [[Back to top]](#) [[Back to API list]](../README.md#api-endpoints) [[Back to Model list]](../README.md#models) [[Back to README]](../README.md)
35
+
36
+
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@knowledge-stack/ksapi",
3
- "version": "3.3.1",
3
+ "version": "3.4.0",
4
4
  "description": "OpenAPI client for @knowledge-stack/ksapi",
5
5
  "author": "OpenAPI-Generator",
6
6
  "repository": {
@@ -13,13 +13,13 @@
13
13
  */
14
14
 
15
15
  import { mapValues } from '../runtime';
16
- import type { YidingConfig } from './YidingConfig';
16
+ import type { YidingConfigChange } from './YidingConfigChange';
17
17
  import {
18
- YidingConfigFromJSON,
19
- YidingConfigFromJSONTyped,
20
- YidingConfigToJSON,
21
- YidingConfigToJSONTyped,
22
- } from './YidingConfig';
18
+ YidingConfigChangeFromJSON,
19
+ YidingConfigChangeFromJSONTyped,
20
+ YidingConfigChangeToJSON,
21
+ YidingConfigChangeToJSONTyped,
22
+ } from './YidingConfigChange';
23
23
  import type { YidingCursor } from './YidingCursor';
24
24
  import {
25
25
  YidingCursorFromJSON,
@@ -68,11 +68,11 @@ export interface UpdateDataSourceRequest {
68
68
  */
69
69
  connectionConfig?: ConnectionConfig | null;
70
70
  /**
71
- * Fresh YIDINGSYNC crawler config to replace the stored one (login, shop, start date, recurrence); rejected on a DIRECT connector. Changing ``cron`` re-arms the schedule. connection_config stays server-managed for YIDINGSYNC.
72
- * @type {YidingConfig}
71
+ * What a YIDINGSYNC connector's crawler config may still change: the panel password and the crawl recurrence, each optional and each merged into the stored config rather than replacing it. Which shop and from when are fixed at creation. Rejected on a DIRECT connector. Changing ``cron`` re-arms the schedule. connection_config stays server-managed for YIDINGSYNC.
72
+ * @type {YidingConfigChange}
73
73
  * @memberof UpdateDataSourceRequest
74
74
  */
75
- sourceConfig?: YidingConfig | null;
75
+ sourceConfig?: YidingConfigChange | null;
76
76
  /**
77
77
  * The crawl cursor, replaced whole. Written by the sync itself (the worker acts as the connector's owner) after each batch, so it records what has already been read. Moving it forward by hand makes the next run skip those days for good — the increment only re-scans what the cursor points at.
78
78
  * @type {YidingCursor}
@@ -122,7 +122,7 @@ export function UpdateDataSourceRequestFromJSONTyped(json: any, ignoreDiscrimina
122
122
  'name': json['name'] == null ? undefined : json['name'],
123
123
  'parentPathPartId': json['parent_path_part_id'] == null ? undefined : json['parent_path_part_id'],
124
124
  'connectionConfig': json['connection_config'] == null ? undefined : ConnectionConfigFromJSON(json['connection_config']),
125
- 'sourceConfig': json['source_config'] == null ? undefined : YidingConfigFromJSON(json['source_config']),
125
+ 'sourceConfig': json['source_config'] == null ? undefined : YidingConfigChangeFromJSON(json['source_config']),
126
126
  'syncState': json['sync_state'] == null ? undefined : YidingCursorFromJSON(json['sync_state']),
127
127
  };
128
128
  }
@@ -141,7 +141,7 @@ export function UpdateDataSourceRequestToJSONTyped(value?: UpdateDataSourceReque
141
141
  'name': value['name'],
142
142
  'parent_path_part_id': value['parentPathPartId'],
143
143
  'connection_config': ConnectionConfigToJSON(value['connectionConfig']),
144
- 'source_config': YidingConfigToJSON(value['sourceConfig']),
144
+ 'source_config': YidingConfigChangeToJSON(value['sourceConfig']),
145
145
  'sync_state': YidingCursorToJSON(value['syncState']),
146
146
  };
147
147
  }
@@ -0,0 +1,93 @@
1
+ /* tslint:disable */
2
+ /* eslint-disable */
3
+ /**
4
+ * Knowledge Stack API
5
+ * Knowledge Stack backend API for authentication and knowledge management. ## Integrating (RPA / machine clients) **Base URL.** Knowledge Stack is self-hosted — point at your own deployment host (see `servers`). The `localhost` entry is for local development only. **Authentication.** Send `Authorization: Bearer <api-key>` on every request. Mint an API key once via `POST /v1/api-keys` from a signed-in browser session; the raw `sk-user-...` secret is returned **only** at creation, so store it then. A key inherits its owning user\'s live tenant role and path permissions — create RPA keys from a least-privilege user, and set `expires_at` for rotation. The `ks_uat` cookie scheme is browser-only and cannot be used by headless clients. **Async work is polled, not pushed.** There are no outbound webhooks. - `POST /v1/documents/ingest` returns `201` immediately with a `workflow_id`; poll `GET /v1/system-jobs/document_versions/{workflow_id}` until `status` is terminal (anything other than `pending`/`processing`). The `Location` response header points at this poll resource. - `POST /v1/workflow-runs/{run_id}/start` returns `202`; poll `GET /v1/workflow-runs/{run_id}` until `execution_state` is `COMPLETED` or `FAILED`. The `Location` header points at the run resource. - `POST /v1/agent/ask` is **synchronous** — it blocks until the agent finishes and returns the answer inline. Use a generous HTTP timeout. **Pagination.** List endpoints accept `limit`/`offset` and return `{items, total, limit, offset}`. **Errors.** Every non-2xx body is `{detail, code, request_id}`. `code` is a stable value from a closed set (see the `ErrorResponse` schema\'s `code` enum) — branch on it rather than parsing `detail`. Quota rejections return `429` with a `Retry-After` header; transient lock contention returns a retryable `503`. Quote `request_id` (also the `x-request-id` response header) to support. **Idempotency.** `POST /v1/workflow-runs` accepts an `idempotency_key` to dedupe retried run creation. `agent/ask` charges one message *before* running and does not refund a client-cancelled call.
6
+ *
7
+ * The version of the OpenAPI document: 0.1.0
8
+ *
9
+ *
10
+ * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
11
+ * https://openapi-generator.tech
12
+ * Do not edit the class manually.
13
+ */
14
+
15
+ import { mapValues } from '../runtime';
16
+ /**
17
+ *
18
+ * @export
19
+ * @interface YidingConfigChange
20
+ */
21
+ export interface YidingConfigChange {
22
+ /**
23
+ * Crawl recurrence, in the tenant's timezone
24
+ * @type {string}
25
+ * @memberof YidingConfigChange
26
+ */
27
+ cron?: string | null;
28
+ /**
29
+ * Write-only: omit it to keep the stored one
30
+ * @type {string}
31
+ * @memberof YidingConfigChange
32
+ */
33
+ password?: string | null;
34
+ }
35
+ export const YidingConfigChangePropertyValidationAttributesMap: {
36
+ [property: string]: {
37
+ maxLength?: number,
38
+ minLength?: number,
39
+ pattern?: string,
40
+ maximum?: number,
41
+ exclusiveMaximum?: boolean,
42
+ minimum?: number,
43
+ exclusiveMinimum?: boolean,
44
+ multipleOf?: number,
45
+ maxItems?: number,
46
+ minItems?: number,
47
+ uniqueItems?: boolean
48
+ }
49
+ } = {
50
+ password: {
51
+ minLength: 1,
52
+ },
53
+ }
54
+
55
+
56
+ /**
57
+ * Check if a given object implements the YidingConfigChange interface.
58
+ */
59
+ export function instanceOfYidingConfigChange(value: object): value is YidingConfigChange {
60
+ return true;
61
+ }
62
+
63
+ export function YidingConfigChangeFromJSON(json: any): YidingConfigChange {
64
+ return YidingConfigChangeFromJSONTyped(json, false);
65
+ }
66
+
67
+ export function YidingConfigChangeFromJSONTyped(json: any, ignoreDiscriminator: boolean): YidingConfigChange {
68
+ if (json == null) {
69
+ return json;
70
+ }
71
+ return {
72
+
73
+ 'cron': json['cron'] == null ? undefined : json['cron'],
74
+ 'password': json['password'] == null ? undefined : json['password'],
75
+ };
76
+ }
77
+
78
+ export function YidingConfigChangeToJSON(json: any): YidingConfigChange {
79
+ return YidingConfigChangeToJSONTyped(json, false);
80
+ }
81
+
82
+ export function YidingConfigChangeToJSONTyped(value?: YidingConfigChange | null, ignoreDiscriminator: boolean = false): any {
83
+ if (value == null) {
84
+ return value;
85
+ }
86
+
87
+ return {
88
+
89
+ 'cron': value['cron'],
90
+ 'password': value['password'],
91
+ };
92
+ }
93
+
@@ -397,6 +397,7 @@ export * from './XlsxCellAnchorInputOrDocxParagraphAnchorInput';
397
397
  export * from './XlsxCellAnchorOutput';
398
398
  export * from './XlsxCellAnchorOutputOrDocxParagraphAnchorOutput';
399
399
  export * from './YidingConfig';
400
+ export * from './YidingConfigChange';
400
401
  export * from './YidingCursor';
401
402
  export * from './ZipFileResult';
402
403
  export * from './ZipIngestionStatusResponse';