@flowcore/sdk 1.60.2 → 1.62.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.
package/CHANGELOG.md CHANGED
@@ -1,5 +1,21 @@
1
1
  # Changelog
2
2
 
3
+ ## [1.62.0](https://github.com/flowcore-io/flowcore-sdk/compare/v1.61.0...v1.62.0) (2025-12-05)
4
+
5
+
6
+ ### Features
7
+
8
+ * add tenant creation command to manage tenant lifecycle ([0da5d80](https://github.com/flowcore-io/flowcore-sdk/commit/0da5d80c2da949c7cf8dcc703deb99496ad17d97))
9
+ * add tenant creation command to manage tenant lifecycle ([05d3972](https://github.com/flowcore-io/flowcore-sdk/commit/05d3972a160e74d95baafd4e8c7016c46604039e))
10
+
11
+ ## [1.61.0](https://github.com/flowcore-io/flowcore-sdk/compare/v1.60.2...v1.61.0) (2025-12-05)
12
+
13
+
14
+ ### Features
15
+
16
+ * add tenant update command to manage tenant details ([2520980](https://github.com/flowcore-io/flowcore-sdk/commit/2520980ddbe82da0fb5ad367270795911b46d684))
17
+ * add tenant update command to manage tenant details ([e4b358a](https://github.com/flowcore-io/flowcore-sdk/commit/e4b358add6a7c7321024c4dcc1d469fc5e2aa6d8))
18
+
3
19
  ## [1.60.2](https://github.com/flowcore-io/flowcore-sdk/compare/v1.60.1...v1.60.2) (2025-12-03)
4
20
 
5
21
 
@@ -1,7 +1,9 @@
1
1
  export * from "./tenant/tenant.disable-sensitive-data.js";
2
2
  export * from "./tenant/tenant.enable-sensitive-data.js";
3
+ export * from "./tenant/tenant.create.js";
3
4
  export * from "./tenant/tenant.fetch.js";
4
5
  export * from "./tenant/tenant.list.js";
6
+ export * from "./tenant/tenant.update.js";
5
7
  export * from "./tenant/tenant.user-add.js";
6
8
  export * from "./tenant/tenant.user-remove.js";
7
9
  export * from "./tenant/tenant.user-list.js";
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/commands/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/commands/index.ts"],"names":[],"mappings":"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"}
@@ -1,8 +1,10 @@
1
1
  // Tenant
2
2
  export * from "./tenant/tenant.disable-sensitive-data.js";
3
3
  export * from "./tenant/tenant.enable-sensitive-data.js";
4
+ export * from "./tenant/tenant.create.js";
4
5
  export * from "./tenant/tenant.fetch.js";
5
6
  export * from "./tenant/tenant.list.js";
7
+ export * from "./tenant/tenant.update.js";
6
8
  export * from "./tenant/tenant.user-add.js";
7
9
  export * from "./tenant/tenant.user-remove.js";
8
10
  export * from "./tenant/tenant.user-list.js";
@@ -0,0 +1,43 @@
1
+ import { Command } from "../../common/command.js";
2
+ import { type Tenant } from "../../contracts/tenant.js";
3
+ /**
4
+ * The input for the tenant create command
5
+ */
6
+ export interface TenantCreateInput {
7
+ /** The tenant slug (already normalized, lowercase, URL-safe) */
8
+ tenantSlug: string;
9
+ /** The description of the tenant */
10
+ description?: string;
11
+ /** The display name of the tenant */
12
+ displayName?: string;
13
+ }
14
+ /**
15
+ * Create a tenant
16
+ */
17
+ export declare class TenantCreateCommand extends Command<TenantCreateInput, Tenant> {
18
+ /**
19
+ * Whether the command should retry on failure
20
+ */
21
+ protected retryOnFailure: boolean;
22
+ /**
23
+ * Get the method
24
+ */
25
+ protected getMethod(): string;
26
+ /**
27
+ * Get the base url
28
+ */
29
+ protected getBaseUrl(): string;
30
+ /**
31
+ * Get the path
32
+ */
33
+ protected getPath(): string;
34
+ /**
35
+ * Get the body for the request
36
+ */
37
+ protected getBody(): Record<string, unknown>;
38
+ /**
39
+ * Parse the response
40
+ */
41
+ protected parseResponse(rawResponse: unknown): Tenant;
42
+ }
43
+ //# sourceMappingURL=tenant.create.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tenant.create.d.ts","sourceRoot":"","sources":["../../../src/commands/tenant/tenant.create.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,MAAM,yBAAyB,CAAA;AACjD,OAAO,EAAE,KAAK,MAAM,EAAgB,MAAM,2BAA2B,CAAA;AAGrE;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC,gEAAgE;IAChE,UAAU,EAAE,MAAM,CAAA;IAClB,oCAAoC;IACpC,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,qCAAqC;IACrC,WAAW,CAAC,EAAE,MAAM,CAAA;CACrB;AAuBD;;GAEG;AACH,qBAAa,mBAAoB,SAAQ,OAAO,CAAC,iBAAiB,EAAE,MAAM,CAAC;IACzE;;OAEG;IACH,UAAmB,cAAc,EAAE,OAAO,CAAQ;IAElD;;OAEG;cACgB,SAAS,IAAI,MAAM;IAItC;;OAEG;cACgB,UAAU,IAAI,MAAM;IAIvC;;OAEG;cACgB,OAAO,IAAI,MAAM;IAIpC;;OAEG;cACgB,OAAO,IAAI,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IAUrD;;OAEG;cACgB,aAAa,CAAC,WAAW,EAAE,OAAO,GAAG,MAAM;CAI/D"}
@@ -0,0 +1,69 @@
1
+ import { Type } from "@sinclair/typebox";
2
+ import { Command } from "../../common/command.js";
3
+ import { TenantSchema } from "../../contracts/tenant.js";
4
+ import { parseResponseHelper } from "../../utils/parse-response-helper.js";
5
+ /**
6
+ * Response schema for the tenant create command
7
+ */
8
+ const responseSchema = Type.Object({
9
+ ...TenantSchema.properties,
10
+ dedicated: Type.Union([
11
+ Type.Null(),
12
+ Type.Object({
13
+ // parse as string to avoid SDK failures if new statuses are added
14
+ status: Type.String(),
15
+ configuration: Type.Object({
16
+ domain: Type.String(),
17
+ configurationRepoUrl: Type.String(),
18
+ configurationRepoCredentials: Type.String(),
19
+ }),
20
+ }),
21
+ ]),
22
+ configured: Type.Boolean(),
23
+ sensitiveDataEnabled: Type.Boolean(),
24
+ });
25
+ /**
26
+ * Create a tenant
27
+ */
28
+ export class TenantCreateCommand extends Command {
29
+ /**
30
+ * Whether the command should retry on failure
31
+ */
32
+ retryOnFailure = false;
33
+ /**
34
+ * Get the method
35
+ */
36
+ getMethod() {
37
+ return "POST";
38
+ }
39
+ /**
40
+ * Get the base url
41
+ */
42
+ getBaseUrl() {
43
+ return "https://tenant.api.flowcore.io";
44
+ }
45
+ /**
46
+ * Get the path
47
+ */
48
+ getPath() {
49
+ return `/api/v1/tenants`;
50
+ }
51
+ /**
52
+ * Get the body for the request
53
+ */
54
+ getBody() {
55
+ const { tenantSlug, description, displayName } = this.input;
56
+ return {
57
+ tenant_slug: tenantSlug,
58
+ ...(description !== undefined && { description }),
59
+ ...(displayName !== undefined && { displayName }),
60
+ };
61
+ }
62
+ /**
63
+ * Parse the response
64
+ */
65
+ parseResponse(rawResponse) {
66
+ const response = parseResponseHelper(responseSchema, rawResponse);
67
+ return response;
68
+ }
69
+ }
@@ -0,0 +1,46 @@
1
+ import { Command } from "../../common/command.js";
2
+ import { type Tenant } from "../../contracts/tenant.js";
3
+ import type { ClientError } from "../../exceptions/client-error.js";
4
+ /**
5
+ * The input for the tenant update command
6
+ */
7
+ export interface TenantUpdateInput {
8
+ /** The id of the tenant to update */
9
+ tenantId: string;
10
+ /** The description of the tenant */
11
+ description?: string;
12
+ /** The display name of the tenant */
13
+ displayName?: string;
14
+ /** The website URL of the tenant */
15
+ website?: string;
16
+ }
17
+ /**
18
+ * Update a tenant
19
+ */
20
+ export declare class TenantUpdateCommand extends Command<TenantUpdateInput, Tenant> {
21
+ /**
22
+ * Get the method
23
+ */
24
+ protected getMethod(): string;
25
+ /**
26
+ * Get the base url
27
+ */
28
+ protected getBaseUrl(): string;
29
+ /**
30
+ * Get the path
31
+ */
32
+ protected getPath(): string;
33
+ /**
34
+ * Get the body for the request
35
+ */
36
+ protected getBody(): Record<string, unknown>;
37
+ /**
38
+ * Parse the response
39
+ */
40
+ protected parseResponse(rawResponse: unknown): Tenant;
41
+ /**
42
+ * Handle the client error
43
+ */
44
+ protected handleClientError(error: ClientError): void;
45
+ }
46
+ //# sourceMappingURL=tenant.update.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tenant.update.d.ts","sourceRoot":"","sources":["../../../src/commands/tenant/tenant.update.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,MAAM,yBAAyB,CAAA;AACjD,OAAO,EAAE,KAAK,MAAM,EAAgB,MAAM,2BAA2B,CAAA;AACrE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,kCAAkC,CAAA;AAKnE;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC,qCAAqC;IACrC,QAAQ,EAAE,MAAM,CAAA;IAChB,oCAAoC;IACpC,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,qCAAqC;IACrC,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,oCAAoC;IACpC,OAAO,CAAC,EAAE,MAAM,CAAA;CACjB;AAuBD;;GAEG;AACH,qBAAa,mBAAoB,SAAQ,OAAO,CAAC,iBAAiB,EAAE,MAAM,CAAC;IACzE;;OAEG;cACgB,SAAS,IAAI,MAAM;IAItC;;OAEG;cACgB,UAAU,IAAI,MAAM;IAIvC;;OAEG;cACgB,OAAO,IAAI,MAAM;IAIpC;;OAEG;cACgB,OAAO,IAAI,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IAerD;;OAEG;cACgB,aAAa,CAAC,WAAW,EAAE,OAAO,GAAG,MAAM;IAK9D;;OAEG;cACgB,iBAAiB,CAAC,KAAK,EAAE,WAAW,GAAG,IAAI;CAM/D"}
@@ -0,0 +1,77 @@
1
+ import { Type } from "@sinclair/typebox";
2
+ import { Command } from "../../common/command.js";
3
+ import { TenantSchema } from "../../contracts/tenant.js";
4
+ import { CommandError } from "../../exceptions/command-error.js";
5
+ import { NotFoundException } from "../../exceptions/not-found.js";
6
+ import { parseResponseHelper } from "../../utils/parse-response-helper.js";
7
+ /**
8
+ * The response schema for the tenant update command
9
+ */
10
+ const responseSchema = Type.Object({
11
+ ...TenantSchema.properties,
12
+ dedicated: Type.Union([
13
+ Type.Null(),
14
+ Type.Object({
15
+ // parse as string to prevent sdk to fail when new status are added
16
+ status: Type.String(),
17
+ configuration: Type.Object({
18
+ domain: Type.String(),
19
+ configurationRepoUrl: Type.String(),
20
+ configurationRepoCredentials: Type.String(),
21
+ }),
22
+ }),
23
+ ]),
24
+ configured: Type.Boolean(),
25
+ sensitiveDataEnabled: Type.Boolean(),
26
+ });
27
+ /**
28
+ * Update a tenant
29
+ */
30
+ export class TenantUpdateCommand extends Command {
31
+ /**
32
+ * Get the method
33
+ */
34
+ getMethod() {
35
+ return "PATCH";
36
+ }
37
+ /**
38
+ * Get the base url
39
+ */
40
+ getBaseUrl() {
41
+ return "https://tenant.api.flowcore.io";
42
+ }
43
+ /**
44
+ * Get the path
45
+ */
46
+ getPath() {
47
+ return `/api/v1/tenants/${this.input.tenantId}`;
48
+ }
49
+ /**
50
+ * Get the body for the request
51
+ */
52
+ getBody() {
53
+ const { tenantId: _tenantId, ...payload } = this.input;
54
+ // Check if there are any fields to update
55
+ const updateFields = Object.fromEntries(Object.entries(payload).filter(([_, value]) => value !== undefined));
56
+ if (Object.keys(updateFields).length === 0) {
57
+ throw new CommandError(this.constructor.name, "No fields to update");
58
+ }
59
+ return updateFields;
60
+ }
61
+ /**
62
+ * Parse the response
63
+ */
64
+ parseResponse(rawResponse) {
65
+ const response = parseResponseHelper(responseSchema, rawResponse);
66
+ return response;
67
+ }
68
+ /**
69
+ * Handle the client error
70
+ */
71
+ handleClientError(error) {
72
+ if (error.status === 404) {
73
+ throw new NotFoundException("Tenant", { id: this.input.tenantId });
74
+ }
75
+ throw error;
76
+ }
77
+ }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@flowcore/sdk",
3
- "version": "1.60.2",
3
+ "version": "1.62.0",
4
4
  "description": "Flowcore SDK",
5
5
  "homepage": "https://github.com/flowcore-io/flowcore-sdk#readme",
6
6
  "repository": {
@@ -1,7 +1,9 @@
1
1
  export * from "./tenant/tenant.disable-sensitive-data.js";
2
2
  export * from "./tenant/tenant.enable-sensitive-data.js";
3
+ export * from "./tenant/tenant.create.js";
3
4
  export * from "./tenant/tenant.fetch.js";
4
5
  export * from "./tenant/tenant.list.js";
6
+ export * from "./tenant/tenant.update.js";
5
7
  export * from "./tenant/tenant.user-add.js";
6
8
  export * from "./tenant/tenant.user-remove.js";
7
9
  export * from "./tenant/tenant.user-list.js";
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/commands/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/commands/index.ts"],"names":[],"mappings":"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"}
@@ -17,8 +17,10 @@ Object.defineProperty(exports, "__esModule", { value: true });
17
17
  // Tenant
18
18
  __exportStar(require("./tenant/tenant.disable-sensitive-data.js"), exports);
19
19
  __exportStar(require("./tenant/tenant.enable-sensitive-data.js"), exports);
20
+ __exportStar(require("./tenant/tenant.create.js"), exports);
20
21
  __exportStar(require("./tenant/tenant.fetch.js"), exports);
21
22
  __exportStar(require("./tenant/tenant.list.js"), exports);
23
+ __exportStar(require("./tenant/tenant.update.js"), exports);
22
24
  __exportStar(require("./tenant/tenant.user-add.js"), exports);
23
25
  __exportStar(require("./tenant/tenant.user-remove.js"), exports);
24
26
  __exportStar(require("./tenant/tenant.user-list.js"), exports);
@@ -0,0 +1,43 @@
1
+ import { Command } from "../../common/command.js";
2
+ import { type Tenant } from "../../contracts/tenant.js";
3
+ /**
4
+ * The input for the tenant create command
5
+ */
6
+ export interface TenantCreateInput {
7
+ /** The tenant slug (already normalized, lowercase, URL-safe) */
8
+ tenantSlug: string;
9
+ /** The description of the tenant */
10
+ description?: string;
11
+ /** The display name of the tenant */
12
+ displayName?: string;
13
+ }
14
+ /**
15
+ * Create a tenant
16
+ */
17
+ export declare class TenantCreateCommand extends Command<TenantCreateInput, Tenant> {
18
+ /**
19
+ * Whether the command should retry on failure
20
+ */
21
+ protected retryOnFailure: boolean;
22
+ /**
23
+ * Get the method
24
+ */
25
+ protected getMethod(): string;
26
+ /**
27
+ * Get the base url
28
+ */
29
+ protected getBaseUrl(): string;
30
+ /**
31
+ * Get the path
32
+ */
33
+ protected getPath(): string;
34
+ /**
35
+ * Get the body for the request
36
+ */
37
+ protected getBody(): Record<string, unknown>;
38
+ /**
39
+ * Parse the response
40
+ */
41
+ protected parseResponse(rawResponse: unknown): Tenant;
42
+ }
43
+ //# sourceMappingURL=tenant.create.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tenant.create.d.ts","sourceRoot":"","sources":["../../../src/commands/tenant/tenant.create.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,MAAM,yBAAyB,CAAA;AACjD,OAAO,EAAE,KAAK,MAAM,EAAgB,MAAM,2BAA2B,CAAA;AAGrE;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC,gEAAgE;IAChE,UAAU,EAAE,MAAM,CAAA;IAClB,oCAAoC;IACpC,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,qCAAqC;IACrC,WAAW,CAAC,EAAE,MAAM,CAAA;CACrB;AAuBD;;GAEG;AACH,qBAAa,mBAAoB,SAAQ,OAAO,CAAC,iBAAiB,EAAE,MAAM,CAAC;IACzE;;OAEG;IACH,UAAmB,cAAc,EAAE,OAAO,CAAQ;IAElD;;OAEG;cACgB,SAAS,IAAI,MAAM;IAItC;;OAEG;cACgB,UAAU,IAAI,MAAM;IAIvC;;OAEG;cACgB,OAAO,IAAI,MAAM;IAIpC;;OAEG;cACgB,OAAO,IAAI,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IAUrD;;OAEG;cACgB,aAAa,CAAC,WAAW,EAAE,OAAO,GAAG,MAAM;CAI/D"}
@@ -0,0 +1,73 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.TenantCreateCommand = void 0;
4
+ const typebox_1 = require("@sinclair/typebox");
5
+ const command_js_1 = require("../../common/command.js");
6
+ const tenant_js_1 = require("../../contracts/tenant.js");
7
+ const parse_response_helper_js_1 = require("../../utils/parse-response-helper.js");
8
+ /**
9
+ * Response schema for the tenant create command
10
+ */
11
+ const responseSchema = typebox_1.Type.Object({
12
+ ...tenant_js_1.TenantSchema.properties,
13
+ dedicated: typebox_1.Type.Union([
14
+ typebox_1.Type.Null(),
15
+ typebox_1.Type.Object({
16
+ // parse as string to avoid SDK failures if new statuses are added
17
+ status: typebox_1.Type.String(),
18
+ configuration: typebox_1.Type.Object({
19
+ domain: typebox_1.Type.String(),
20
+ configurationRepoUrl: typebox_1.Type.String(),
21
+ configurationRepoCredentials: typebox_1.Type.String(),
22
+ }),
23
+ }),
24
+ ]),
25
+ configured: typebox_1.Type.Boolean(),
26
+ sensitiveDataEnabled: typebox_1.Type.Boolean(),
27
+ });
28
+ /**
29
+ * Create a tenant
30
+ */
31
+ class TenantCreateCommand extends command_js_1.Command {
32
+ /**
33
+ * Whether the command should retry on failure
34
+ */
35
+ retryOnFailure = false;
36
+ /**
37
+ * Get the method
38
+ */
39
+ getMethod() {
40
+ return "POST";
41
+ }
42
+ /**
43
+ * Get the base url
44
+ */
45
+ getBaseUrl() {
46
+ return "https://tenant.api.flowcore.io";
47
+ }
48
+ /**
49
+ * Get the path
50
+ */
51
+ getPath() {
52
+ return `/api/v1/tenants`;
53
+ }
54
+ /**
55
+ * Get the body for the request
56
+ */
57
+ getBody() {
58
+ const { tenantSlug, description, displayName } = this.input;
59
+ return {
60
+ tenant_slug: tenantSlug,
61
+ ...(description !== undefined && { description }),
62
+ ...(displayName !== undefined && { displayName }),
63
+ };
64
+ }
65
+ /**
66
+ * Parse the response
67
+ */
68
+ parseResponse(rawResponse) {
69
+ const response = (0, parse_response_helper_js_1.parseResponseHelper)(responseSchema, rawResponse);
70
+ return response;
71
+ }
72
+ }
73
+ exports.TenantCreateCommand = TenantCreateCommand;
@@ -0,0 +1,46 @@
1
+ import { Command } from "../../common/command.js";
2
+ import { type Tenant } from "../../contracts/tenant.js";
3
+ import type { ClientError } from "../../exceptions/client-error.js";
4
+ /**
5
+ * The input for the tenant update command
6
+ */
7
+ export interface TenantUpdateInput {
8
+ /** The id of the tenant to update */
9
+ tenantId: string;
10
+ /** The description of the tenant */
11
+ description?: string;
12
+ /** The display name of the tenant */
13
+ displayName?: string;
14
+ /** The website URL of the tenant */
15
+ website?: string;
16
+ }
17
+ /**
18
+ * Update a tenant
19
+ */
20
+ export declare class TenantUpdateCommand extends Command<TenantUpdateInput, Tenant> {
21
+ /**
22
+ * Get the method
23
+ */
24
+ protected getMethod(): string;
25
+ /**
26
+ * Get the base url
27
+ */
28
+ protected getBaseUrl(): string;
29
+ /**
30
+ * Get the path
31
+ */
32
+ protected getPath(): string;
33
+ /**
34
+ * Get the body for the request
35
+ */
36
+ protected getBody(): Record<string, unknown>;
37
+ /**
38
+ * Parse the response
39
+ */
40
+ protected parseResponse(rawResponse: unknown): Tenant;
41
+ /**
42
+ * Handle the client error
43
+ */
44
+ protected handleClientError(error: ClientError): void;
45
+ }
46
+ //# sourceMappingURL=tenant.update.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tenant.update.d.ts","sourceRoot":"","sources":["../../../src/commands/tenant/tenant.update.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,MAAM,yBAAyB,CAAA;AACjD,OAAO,EAAE,KAAK,MAAM,EAAgB,MAAM,2BAA2B,CAAA;AACrE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,kCAAkC,CAAA;AAKnE;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC,qCAAqC;IACrC,QAAQ,EAAE,MAAM,CAAA;IAChB,oCAAoC;IACpC,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,qCAAqC;IACrC,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,oCAAoC;IACpC,OAAO,CAAC,EAAE,MAAM,CAAA;CACjB;AAuBD;;GAEG;AACH,qBAAa,mBAAoB,SAAQ,OAAO,CAAC,iBAAiB,EAAE,MAAM,CAAC;IACzE;;OAEG;cACgB,SAAS,IAAI,MAAM;IAItC;;OAEG;cACgB,UAAU,IAAI,MAAM;IAIvC;;OAEG;cACgB,OAAO,IAAI,MAAM;IAIpC;;OAEG;cACgB,OAAO,IAAI,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IAerD;;OAEG;cACgB,aAAa,CAAC,WAAW,EAAE,OAAO,GAAG,MAAM;IAK9D;;OAEG;cACgB,iBAAiB,CAAC,KAAK,EAAE,WAAW,GAAG,IAAI;CAM/D"}
@@ -0,0 +1,81 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.TenantUpdateCommand = void 0;
4
+ const typebox_1 = require("@sinclair/typebox");
5
+ const command_js_1 = require("../../common/command.js");
6
+ const tenant_js_1 = require("../../contracts/tenant.js");
7
+ const command_error_js_1 = require("../../exceptions/command-error.js");
8
+ const not_found_js_1 = require("../../exceptions/not-found.js");
9
+ const parse_response_helper_js_1 = require("../../utils/parse-response-helper.js");
10
+ /**
11
+ * The response schema for the tenant update command
12
+ */
13
+ const responseSchema = typebox_1.Type.Object({
14
+ ...tenant_js_1.TenantSchema.properties,
15
+ dedicated: typebox_1.Type.Union([
16
+ typebox_1.Type.Null(),
17
+ typebox_1.Type.Object({
18
+ // parse as string to prevent sdk to fail when new status are added
19
+ status: typebox_1.Type.String(),
20
+ configuration: typebox_1.Type.Object({
21
+ domain: typebox_1.Type.String(),
22
+ configurationRepoUrl: typebox_1.Type.String(),
23
+ configurationRepoCredentials: typebox_1.Type.String(),
24
+ }),
25
+ }),
26
+ ]),
27
+ configured: typebox_1.Type.Boolean(),
28
+ sensitiveDataEnabled: typebox_1.Type.Boolean(),
29
+ });
30
+ /**
31
+ * Update a tenant
32
+ */
33
+ class TenantUpdateCommand extends command_js_1.Command {
34
+ /**
35
+ * Get the method
36
+ */
37
+ getMethod() {
38
+ return "PATCH";
39
+ }
40
+ /**
41
+ * Get the base url
42
+ */
43
+ getBaseUrl() {
44
+ return "https://tenant.api.flowcore.io";
45
+ }
46
+ /**
47
+ * Get the path
48
+ */
49
+ getPath() {
50
+ return `/api/v1/tenants/${this.input.tenantId}`;
51
+ }
52
+ /**
53
+ * Get the body for the request
54
+ */
55
+ getBody() {
56
+ const { tenantId: _tenantId, ...payload } = this.input;
57
+ // Check if there are any fields to update
58
+ const updateFields = Object.fromEntries(Object.entries(payload).filter(([_, value]) => value !== undefined));
59
+ if (Object.keys(updateFields).length === 0) {
60
+ throw new command_error_js_1.CommandError(this.constructor.name, "No fields to update");
61
+ }
62
+ return updateFields;
63
+ }
64
+ /**
65
+ * Parse the response
66
+ */
67
+ parseResponse(rawResponse) {
68
+ const response = (0, parse_response_helper_js_1.parseResponseHelper)(responseSchema, rawResponse);
69
+ return response;
70
+ }
71
+ /**
72
+ * Handle the client error
73
+ */
74
+ handleClientError(error) {
75
+ if (error.status === 404) {
76
+ throw new not_found_js_1.NotFoundException("Tenant", { id: this.input.tenantId });
77
+ }
78
+ throw error;
79
+ }
80
+ }
81
+ exports.TenantUpdateCommand = TenantUpdateCommand;