@stratum-hq/core 0.1.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/dist/__tests__/ancestry.test.d.ts +2 -0
- package/dist/__tests__/ancestry.test.d.ts.map +1 -0
- package/dist/__tests__/ancestry.test.js +132 -0
- package/dist/__tests__/ancestry.test.js.map +1 -0
- package/dist/__tests__/config-types.test.d.ts +2 -0
- package/dist/__tests__/config-types.test.d.ts.map +1 -0
- package/dist/__tests__/config-types.test.js +143 -0
- package/dist/__tests__/config-types.test.js.map +1 -0
- package/dist/__tests__/errors.test.d.ts +2 -0
- package/dist/__tests__/errors.test.d.ts.map +1 -0
- package/dist/__tests__/errors.test.js +113 -0
- package/dist/__tests__/errors.test.js.map +1 -0
- package/dist/__tests__/isolation.test.d.ts +2 -0
- package/dist/__tests__/isolation.test.d.ts.map +1 -0
- package/dist/__tests__/isolation.test.js +34 -0
- package/dist/__tests__/isolation.test.js.map +1 -0
- package/dist/__tests__/validation.test.d.ts +2 -0
- package/dist/__tests__/validation.test.d.ts.map +1 -0
- package/dist/__tests__/validation.test.js +100 -0
- package/dist/__tests__/validation.test.js.map +1 -0
- package/dist/__tests__/webhook.test.d.ts +2 -0
- package/dist/__tests__/webhook.test.d.ts.map +1 -0
- package/dist/__tests__/webhook.test.js +165 -0
- package/dist/__tests__/webhook.test.js.map +1 -0
- package/dist/constants.d.ts +9 -0
- package/dist/constants.d.ts.map +1 -0
- package/dist/constants.js +12 -0
- package/dist/constants.js.map +1 -0
- package/dist/index.d.ts +14 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +102 -0
- package/dist/index.js.map +1 -0
- package/dist/types/api-key.d.ts +5 -0
- package/dist/types/api-key.d.ts.map +1 -0
- package/dist/types/api-key.js +7 -0
- package/dist/types/api-key.js.map +1 -0
- package/dist/types/audit.d.ts +81 -0
- package/dist/types/audit.d.ts.map +1 -0
- package/dist/types/audit.js +30 -0
- package/dist/types/audit.js.map +1 -0
- package/dist/types/config.d.ts +93 -0
- package/dist/types/config.d.ts.map +1 -0
- package/dist/types/config.js +22 -0
- package/dist/types/config.js.map +1 -0
- package/dist/types/consent.d.ts +63 -0
- package/dist/types/consent.d.ts.map +1 -0
- package/dist/types/consent.js +30 -0
- package/dist/types/consent.js.map +1 -0
- package/dist/types/isolation.d.ts +9 -0
- package/dist/types/isolation.d.ts.map +1 -0
- package/dist/types/isolation.js +20 -0
- package/dist/types/isolation.js.map +1 -0
- package/dist/types/permission.d.ts +101 -0
- package/dist/types/permission.d.ts.map +1 -0
- package/dist/types/permission.js +41 -0
- package/dist/types/permission.js.map +1 -0
- package/dist/types/region.d.ts +90 -0
- package/dist/types/region.d.ts.map +1 -0
- package/dist/types/region.js +39 -0
- package/dist/types/region.js.map +1 -0
- package/dist/types/tenant.d.ts +148 -0
- package/dist/types/tenant.d.ts.map +1 -0
- package/dist/types/tenant.js +55 -0
- package/dist/types/tenant.js.map +1 -0
- package/dist/types/webhook.d.ts +181 -0
- package/dist/types/webhook.d.ts.map +1 -0
- package/dist/types/webhook.js +65 -0
- package/dist/types/webhook.js.map +1 -0
- package/dist/utils/ancestry.d.ts +53 -0
- package/dist/utils/ancestry.d.ts.map +1 -0
- package/dist/utils/ancestry.js +100 -0
- package/dist/utils/ancestry.js.map +1 -0
- package/dist/utils/errors.d.ts +88 -0
- package/dist/utils/errors.d.ts.map +1 -0
- package/dist/utils/errors.js +173 -0
- package/dist/utils/errors.js.map +1 -0
- package/dist/utils/validation.d.ts +21 -0
- package/dist/utils/validation.d.ts.map +1 -0
- package/dist/utils/validation.js +19 -0
- package/dist/utils/validation.js.map +1 -0
- package/package.json +35 -0
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
import { z } from "zod";
|
|
2
|
+
export declare const ConsentPurpose: {
|
|
3
|
+
readonly DATA_PROCESSING: "data_processing";
|
|
4
|
+
readonly ANALYTICS: "analytics";
|
|
5
|
+
readonly MARKETING: "marketing";
|
|
6
|
+
readonly THIRD_PARTY_SHARING: "third_party_sharing";
|
|
7
|
+
};
|
|
8
|
+
export declare const ConsentRecordSchema: z.ZodObject<{
|
|
9
|
+
id: z.ZodString;
|
|
10
|
+
tenant_id: z.ZodString;
|
|
11
|
+
subject_id: z.ZodString;
|
|
12
|
+
purpose: z.ZodString;
|
|
13
|
+
granted: z.ZodBoolean;
|
|
14
|
+
granted_at: z.ZodNullable<z.ZodString>;
|
|
15
|
+
revoked_at: z.ZodNullable<z.ZodString>;
|
|
16
|
+
expires_at: z.ZodNullable<z.ZodString>;
|
|
17
|
+
metadata: z.ZodDefault<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
|
|
18
|
+
created_at: z.ZodString;
|
|
19
|
+
updated_at: z.ZodString;
|
|
20
|
+
}, "strip", z.ZodTypeAny, {
|
|
21
|
+
id: string;
|
|
22
|
+
tenant_id: string;
|
|
23
|
+
subject_id: string;
|
|
24
|
+
purpose: string;
|
|
25
|
+
granted: boolean;
|
|
26
|
+
granted_at: string | null;
|
|
27
|
+
revoked_at: string | null;
|
|
28
|
+
expires_at: string | null;
|
|
29
|
+
metadata: Record<string, unknown>;
|
|
30
|
+
created_at: string;
|
|
31
|
+
updated_at: string;
|
|
32
|
+
}, {
|
|
33
|
+
id: string;
|
|
34
|
+
tenant_id: string;
|
|
35
|
+
subject_id: string;
|
|
36
|
+
purpose: string;
|
|
37
|
+
granted: boolean;
|
|
38
|
+
granted_at: string | null;
|
|
39
|
+
revoked_at: string | null;
|
|
40
|
+
expires_at: string | null;
|
|
41
|
+
created_at: string;
|
|
42
|
+
updated_at: string;
|
|
43
|
+
metadata?: Record<string, unknown> | undefined;
|
|
44
|
+
}>;
|
|
45
|
+
export type ConsentRecord = z.infer<typeof ConsentRecordSchema>;
|
|
46
|
+
export declare const GrantConsentInputSchema: z.ZodObject<{
|
|
47
|
+
subject_id: z.ZodString;
|
|
48
|
+
purpose: z.ZodString;
|
|
49
|
+
expires_at: z.ZodOptional<z.ZodString>;
|
|
50
|
+
metadata: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
|
|
51
|
+
}, "strip", z.ZodTypeAny, {
|
|
52
|
+
subject_id: string;
|
|
53
|
+
purpose: string;
|
|
54
|
+
expires_at?: string | undefined;
|
|
55
|
+
metadata?: Record<string, unknown> | undefined;
|
|
56
|
+
}, {
|
|
57
|
+
subject_id: string;
|
|
58
|
+
purpose: string;
|
|
59
|
+
expires_at?: string | undefined;
|
|
60
|
+
metadata?: Record<string, unknown> | undefined;
|
|
61
|
+
}>;
|
|
62
|
+
export type GrantConsentInput = z.infer<typeof GrantConsentInputSchema>;
|
|
63
|
+
//# sourceMappingURL=consent.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"consent.d.ts","sourceRoot":"","sources":["../../src/types/consent.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,eAAO,MAAM,cAAc;;;;;CAKjB,CAAC;AAEX,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAY9B,CAAC;AAEH,MAAM,MAAM,aAAa,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,mBAAmB,CAAC,CAAC;AAEhE,eAAO,MAAM,uBAAuB;;;;;;;;;;;;;;;EAKlC,CAAC;AAEH,MAAM,MAAM,iBAAiB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,uBAAuB,CAAC,CAAC"}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.GrantConsentInputSchema = exports.ConsentRecordSchema = exports.ConsentPurpose = void 0;
|
|
4
|
+
const zod_1 = require("zod");
|
|
5
|
+
exports.ConsentPurpose = {
|
|
6
|
+
DATA_PROCESSING: "data_processing",
|
|
7
|
+
ANALYTICS: "analytics",
|
|
8
|
+
MARKETING: "marketing",
|
|
9
|
+
THIRD_PARTY_SHARING: "third_party_sharing",
|
|
10
|
+
};
|
|
11
|
+
exports.ConsentRecordSchema = zod_1.z.object({
|
|
12
|
+
id: zod_1.z.string().uuid(),
|
|
13
|
+
tenant_id: zod_1.z.string().uuid(),
|
|
14
|
+
subject_id: zod_1.z.string(),
|
|
15
|
+
purpose: zod_1.z.string(),
|
|
16
|
+
granted: zod_1.z.boolean(),
|
|
17
|
+
granted_at: zod_1.z.string().nullable(),
|
|
18
|
+
revoked_at: zod_1.z.string().nullable(),
|
|
19
|
+
expires_at: zod_1.z.string().nullable(),
|
|
20
|
+
metadata: zod_1.z.record(zod_1.z.unknown()).default({}),
|
|
21
|
+
created_at: zod_1.z.string(),
|
|
22
|
+
updated_at: zod_1.z.string(),
|
|
23
|
+
});
|
|
24
|
+
exports.GrantConsentInputSchema = zod_1.z.object({
|
|
25
|
+
subject_id: zod_1.z.string().min(1),
|
|
26
|
+
purpose: zod_1.z.string().min(1),
|
|
27
|
+
expires_at: zod_1.z.string().optional(),
|
|
28
|
+
metadata: zod_1.z.record(zod_1.z.unknown()).optional(),
|
|
29
|
+
});
|
|
30
|
+
//# sourceMappingURL=consent.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"consent.js","sourceRoot":"","sources":["../../src/types/consent.ts"],"names":[],"mappings":";;;AAAA,6BAAwB;AAEX,QAAA,cAAc,GAAG;IAC5B,eAAe,EAAE,iBAAiB;IAClC,SAAS,EAAE,WAAW;IACtB,SAAS,EAAE,WAAW;IACtB,mBAAmB,EAAE,qBAAqB;CAClC,CAAC;AAEE,QAAA,mBAAmB,GAAG,OAAC,CAAC,MAAM,CAAC;IAC1C,EAAE,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE;IACrB,SAAS,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE;IAC5B,UAAU,EAAE,OAAC,CAAC,MAAM,EAAE;IACtB,OAAO,EAAE,OAAC,CAAC,MAAM,EAAE;IACnB,OAAO,EAAE,OAAC,CAAC,OAAO,EAAE;IACpB,UAAU,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IACjC,UAAU,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IACjC,UAAU,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IACjC,QAAQ,EAAE,OAAC,CAAC,MAAM,CAAC,OAAC,CAAC,OAAO,EAAE,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC;IAC3C,UAAU,EAAE,OAAC,CAAC,MAAM,EAAE;IACtB,UAAU,EAAE,OAAC,CAAC,MAAM,EAAE;CACvB,CAAC,CAAC;AAIU,QAAA,uBAAuB,GAAG,OAAC,CAAC,MAAM,CAAC;IAC9C,UAAU,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IAC7B,OAAO,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IAC1B,UAAU,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IACjC,QAAQ,EAAE,OAAC,CAAC,MAAM,CAAC,OAAC,CAAC,OAAO,EAAE,CAAC,CAAC,QAAQ,EAAE;CAC3C,CAAC,CAAC"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
export { IsolationStrategy } from "./tenant.js";
|
|
2
|
+
/**
|
|
3
|
+
* V1.2 adds DB_PER_TENANT to the supported strategies.
|
|
4
|
+
*/
|
|
5
|
+
export declare const SUPPORTED_ISOLATION_STRATEGIES: readonly ["SHARED_RLS", "SCHEMA_PER_TENANT", "DB_PER_TENANT"];
|
|
6
|
+
/** @deprecated Use SUPPORTED_ISOLATION_STRATEGIES */
|
|
7
|
+
export declare const SUPPORTED_ISOLATION_STRATEGIES_V1: readonly ["SHARED_RLS", "SCHEMA_PER_TENANT", "DB_PER_TENANT"];
|
|
8
|
+
export declare function isSupportedIsolationStrategy(strategy: string): boolean;
|
|
9
|
+
//# sourceMappingURL=isolation.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"isolation.d.ts","sourceRoot":"","sources":["../../src/types/isolation.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAEhD;;GAEG;AACH,eAAO,MAAM,8BAA8B,+DAIjC,CAAC;AAEX,qDAAqD;AACrD,eAAO,MAAM,iCAAiC,+DAAiC,CAAC;AAEhF,wBAAgB,4BAA4B,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAEtE"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.isSupportedIsolationStrategy = exports.SUPPORTED_ISOLATION_STRATEGIES_V1 = exports.SUPPORTED_ISOLATION_STRATEGIES = exports.IsolationStrategy = void 0;
|
|
4
|
+
var tenant_js_1 = require("./tenant.js");
|
|
5
|
+
Object.defineProperty(exports, "IsolationStrategy", { enumerable: true, get: function () { return tenant_js_1.IsolationStrategy; } });
|
|
6
|
+
/**
|
|
7
|
+
* V1.2 adds DB_PER_TENANT to the supported strategies.
|
|
8
|
+
*/
|
|
9
|
+
exports.SUPPORTED_ISOLATION_STRATEGIES = [
|
|
10
|
+
"SHARED_RLS",
|
|
11
|
+
"SCHEMA_PER_TENANT",
|
|
12
|
+
"DB_PER_TENANT",
|
|
13
|
+
];
|
|
14
|
+
/** @deprecated Use SUPPORTED_ISOLATION_STRATEGIES */
|
|
15
|
+
exports.SUPPORTED_ISOLATION_STRATEGIES_V1 = exports.SUPPORTED_ISOLATION_STRATEGIES;
|
|
16
|
+
function isSupportedIsolationStrategy(strategy) {
|
|
17
|
+
return exports.SUPPORTED_ISOLATION_STRATEGIES.includes(strategy);
|
|
18
|
+
}
|
|
19
|
+
exports.isSupportedIsolationStrategy = isSupportedIsolationStrategy;
|
|
20
|
+
//# sourceMappingURL=isolation.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"isolation.js","sourceRoot":"","sources":["../../src/types/isolation.ts"],"names":[],"mappings":";;;AAAA,yCAAgD;AAAvC,8GAAA,iBAAiB,OAAA;AAE1B;;GAEG;AACU,QAAA,8BAA8B,GAAG;IAC5C,YAAY;IACZ,mBAAmB;IACnB,eAAe;CACP,CAAC;AAEX,qDAAqD;AACxC,QAAA,iCAAiC,GAAG,sCAA8B,CAAC;AAEhF,SAAgB,4BAA4B,CAAC,QAAgB;IAC3D,OAAO,sCAA8B,CAAC,QAAQ,CAAC,QAAe,CAAC,CAAC;AAClE,CAAC;AAFD,oEAEC"}
|
|
@@ -0,0 +1,101 @@
|
|
|
1
|
+
import { z } from "zod";
|
|
2
|
+
export declare const PermissionMode: {
|
|
3
|
+
readonly LOCKED: "LOCKED";
|
|
4
|
+
readonly INHERITED: "INHERITED";
|
|
5
|
+
readonly DELEGATED: "DELEGATED";
|
|
6
|
+
};
|
|
7
|
+
export type PermissionMode = (typeof PermissionMode)[keyof typeof PermissionMode];
|
|
8
|
+
export declare const RevocationMode: {
|
|
9
|
+
readonly CASCADE: "CASCADE";
|
|
10
|
+
readonly SOFT: "SOFT";
|
|
11
|
+
readonly PERMANENT: "PERMANENT";
|
|
12
|
+
};
|
|
13
|
+
export type RevocationMode = (typeof RevocationMode)[keyof typeof RevocationMode];
|
|
14
|
+
export declare const PermissionPolicySchema: z.ZodObject<{
|
|
15
|
+
id: z.ZodString;
|
|
16
|
+
tenant_id: z.ZodString;
|
|
17
|
+
key: z.ZodString;
|
|
18
|
+
value: z.ZodDefault<z.ZodUnknown>;
|
|
19
|
+
mode: z.ZodDefault<z.ZodNativeEnum<{
|
|
20
|
+
readonly LOCKED: "LOCKED";
|
|
21
|
+
readonly INHERITED: "INHERITED";
|
|
22
|
+
readonly DELEGATED: "DELEGATED";
|
|
23
|
+
}>>;
|
|
24
|
+
revocation_mode: z.ZodDefault<z.ZodNativeEnum<{
|
|
25
|
+
readonly CASCADE: "CASCADE";
|
|
26
|
+
readonly SOFT: "SOFT";
|
|
27
|
+
readonly PERMANENT: "PERMANENT";
|
|
28
|
+
}>>;
|
|
29
|
+
source_tenant_id: z.ZodString;
|
|
30
|
+
created_at: z.ZodString;
|
|
31
|
+
updated_at: z.ZodString;
|
|
32
|
+
}, "strip", z.ZodTypeAny, {
|
|
33
|
+
id: string;
|
|
34
|
+
tenant_id: string;
|
|
35
|
+
created_at: string;
|
|
36
|
+
updated_at: string;
|
|
37
|
+
key: string;
|
|
38
|
+
source_tenant_id: string;
|
|
39
|
+
mode: "LOCKED" | "INHERITED" | "DELEGATED";
|
|
40
|
+
revocation_mode: "CASCADE" | "SOFT" | "PERMANENT";
|
|
41
|
+
value?: unknown;
|
|
42
|
+
}, {
|
|
43
|
+
id: string;
|
|
44
|
+
tenant_id: string;
|
|
45
|
+
created_at: string;
|
|
46
|
+
updated_at: string;
|
|
47
|
+
key: string;
|
|
48
|
+
source_tenant_id: string;
|
|
49
|
+
value?: unknown;
|
|
50
|
+
mode?: "LOCKED" | "INHERITED" | "DELEGATED" | undefined;
|
|
51
|
+
revocation_mode?: "CASCADE" | "SOFT" | "PERMANENT" | undefined;
|
|
52
|
+
}>;
|
|
53
|
+
export type PermissionPolicy = z.infer<typeof PermissionPolicySchema>;
|
|
54
|
+
export declare const CreatePermissionInputSchema: z.ZodObject<{
|
|
55
|
+
key: z.ZodString;
|
|
56
|
+
value: z.ZodDefault<z.ZodUnknown>;
|
|
57
|
+
mode: z.ZodDefault<z.ZodNativeEnum<{
|
|
58
|
+
readonly LOCKED: "LOCKED";
|
|
59
|
+
readonly INHERITED: "INHERITED";
|
|
60
|
+
readonly DELEGATED: "DELEGATED";
|
|
61
|
+
}>>;
|
|
62
|
+
revocation_mode: z.ZodDefault<z.ZodNativeEnum<{
|
|
63
|
+
readonly CASCADE: "CASCADE";
|
|
64
|
+
readonly SOFT: "SOFT";
|
|
65
|
+
readonly PERMANENT: "PERMANENT";
|
|
66
|
+
}>>;
|
|
67
|
+
}, "strip", z.ZodTypeAny, {
|
|
68
|
+
key: string;
|
|
69
|
+
mode: "LOCKED" | "INHERITED" | "DELEGATED";
|
|
70
|
+
revocation_mode: "CASCADE" | "SOFT" | "PERMANENT";
|
|
71
|
+
value?: unknown;
|
|
72
|
+
}, {
|
|
73
|
+
key: string;
|
|
74
|
+
value?: unknown;
|
|
75
|
+
mode?: "LOCKED" | "INHERITED" | "DELEGATED" | undefined;
|
|
76
|
+
revocation_mode?: "CASCADE" | "SOFT" | "PERMANENT" | undefined;
|
|
77
|
+
}>;
|
|
78
|
+
export type CreatePermissionInput = z.infer<typeof CreatePermissionInputSchema>;
|
|
79
|
+
export declare const UpdatePermissionInputSchema: z.ZodObject<{
|
|
80
|
+
value: z.ZodOptional<z.ZodUnknown>;
|
|
81
|
+
mode: z.ZodOptional<z.ZodNativeEnum<{
|
|
82
|
+
readonly LOCKED: "LOCKED";
|
|
83
|
+
readonly INHERITED: "INHERITED";
|
|
84
|
+
readonly DELEGATED: "DELEGATED";
|
|
85
|
+
}>>;
|
|
86
|
+
revocation_mode: z.ZodOptional<z.ZodNativeEnum<{
|
|
87
|
+
readonly CASCADE: "CASCADE";
|
|
88
|
+
readonly SOFT: "SOFT";
|
|
89
|
+
readonly PERMANENT: "PERMANENT";
|
|
90
|
+
}>>;
|
|
91
|
+
}, "strip", z.ZodTypeAny, {
|
|
92
|
+
value?: unknown;
|
|
93
|
+
mode?: "LOCKED" | "INHERITED" | "DELEGATED" | undefined;
|
|
94
|
+
revocation_mode?: "CASCADE" | "SOFT" | "PERMANENT" | undefined;
|
|
95
|
+
}, {
|
|
96
|
+
value?: unknown;
|
|
97
|
+
mode?: "LOCKED" | "INHERITED" | "DELEGATED" | undefined;
|
|
98
|
+
revocation_mode?: "CASCADE" | "SOFT" | "PERMANENT" | undefined;
|
|
99
|
+
}>;
|
|
100
|
+
export type UpdatePermissionInput = z.infer<typeof UpdatePermissionInputSchema>;
|
|
101
|
+
//# sourceMappingURL=permission.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"permission.d.ts","sourceRoot":"","sources":["../../src/types/permission.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,eAAO,MAAM,cAAc;;;;CAIjB,CAAC;AAEX,MAAM,MAAM,cAAc,GACxB,CAAC,OAAO,cAAc,CAAC,CAAC,MAAM,OAAO,cAAc,CAAC,CAAC;AAEvD,eAAO,MAAM,cAAc;;;;CAIjB,CAAC;AAEX,MAAM,MAAM,cAAc,GACxB,CAAC,OAAO,cAAc,CAAC,CAAC,MAAM,OAAO,cAAc,CAAC,CAAC;AAEvD,eAAO,MAAM,sBAAsB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAYjC,CAAC;AAEH,MAAM,MAAM,gBAAgB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,sBAAsB,CAAC,CAAC;AAEtE,eAAO,MAAM,2BAA2B;;;;;;;;;;;;;;;;;;;;;;;EAOtC,CAAC;AAEH,MAAM,MAAM,qBAAqB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,2BAA2B,CAAC,CAAC;AAEhF,eAAO,MAAM,2BAA2B;;;;;;;;;;;;;;;;;;;;EAItC,CAAC;AAEH,MAAM,MAAM,qBAAqB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,2BAA2B,CAAC,CAAC"}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.UpdatePermissionInputSchema = exports.CreatePermissionInputSchema = exports.PermissionPolicySchema = exports.RevocationMode = exports.PermissionMode = void 0;
|
|
4
|
+
const zod_1 = require("zod");
|
|
5
|
+
exports.PermissionMode = {
|
|
6
|
+
LOCKED: "LOCKED",
|
|
7
|
+
INHERITED: "INHERITED",
|
|
8
|
+
DELEGATED: "DELEGATED",
|
|
9
|
+
};
|
|
10
|
+
exports.RevocationMode = {
|
|
11
|
+
CASCADE: "CASCADE",
|
|
12
|
+
SOFT: "SOFT",
|
|
13
|
+
PERMANENT: "PERMANENT",
|
|
14
|
+
};
|
|
15
|
+
exports.PermissionPolicySchema = zod_1.z.object({
|
|
16
|
+
id: zod_1.z.string().uuid(),
|
|
17
|
+
tenant_id: zod_1.z.string().uuid(),
|
|
18
|
+
key: zod_1.z.string().min(1).max(255),
|
|
19
|
+
value: zod_1.z.unknown().default(true),
|
|
20
|
+
mode: zod_1.z.nativeEnum(exports.PermissionMode).default(exports.PermissionMode.INHERITED),
|
|
21
|
+
revocation_mode: zod_1.z
|
|
22
|
+
.nativeEnum(exports.RevocationMode)
|
|
23
|
+
.default(exports.RevocationMode.CASCADE),
|
|
24
|
+
source_tenant_id: zod_1.z.string().uuid(),
|
|
25
|
+
created_at: zod_1.z.string().datetime(),
|
|
26
|
+
updated_at: zod_1.z.string().datetime(),
|
|
27
|
+
});
|
|
28
|
+
exports.CreatePermissionInputSchema = zod_1.z.object({
|
|
29
|
+
key: zod_1.z.string().min(1).max(255),
|
|
30
|
+
value: zod_1.z.unknown().default(true),
|
|
31
|
+
mode: zod_1.z.nativeEnum(exports.PermissionMode).default(exports.PermissionMode.INHERITED),
|
|
32
|
+
revocation_mode: zod_1.z
|
|
33
|
+
.nativeEnum(exports.RevocationMode)
|
|
34
|
+
.default(exports.RevocationMode.CASCADE),
|
|
35
|
+
});
|
|
36
|
+
exports.UpdatePermissionInputSchema = zod_1.z.object({
|
|
37
|
+
value: zod_1.z.unknown().optional(),
|
|
38
|
+
mode: zod_1.z.nativeEnum(exports.PermissionMode).optional(),
|
|
39
|
+
revocation_mode: zod_1.z.nativeEnum(exports.RevocationMode).optional(),
|
|
40
|
+
});
|
|
41
|
+
//# sourceMappingURL=permission.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"permission.js","sourceRoot":"","sources":["../../src/types/permission.ts"],"names":[],"mappings":";;;AAAA,6BAAwB;AAEX,QAAA,cAAc,GAAG;IAC5B,MAAM,EAAE,QAAQ;IAChB,SAAS,EAAE,WAAW;IACtB,SAAS,EAAE,WAAW;CACd,CAAC;AAKE,QAAA,cAAc,GAAG;IAC5B,OAAO,EAAE,SAAS;IAClB,IAAI,EAAE,MAAM;IACZ,SAAS,EAAE,WAAW;CACd,CAAC;AAKE,QAAA,sBAAsB,GAAG,OAAC,CAAC,MAAM,CAAC;IAC7C,EAAE,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE;IACrB,SAAS,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE;IAC5B,GAAG,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC;IAC/B,KAAK,EAAE,OAAC,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC;IAChC,IAAI,EAAE,OAAC,CAAC,UAAU,CAAC,sBAAc,CAAC,CAAC,OAAO,CAAC,sBAAc,CAAC,SAAS,CAAC;IACpE,eAAe,EAAE,OAAC;SACf,UAAU,CAAC,sBAAc,CAAC;SAC1B,OAAO,CAAC,sBAAc,CAAC,OAAO,CAAC;IAClC,gBAAgB,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE;IACnC,UAAU,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IACjC,UAAU,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;CAClC,CAAC,CAAC;AAIU,QAAA,2BAA2B,GAAG,OAAC,CAAC,MAAM,CAAC;IAClD,GAAG,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC;IAC/B,KAAK,EAAE,OAAC,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC;IAChC,IAAI,EAAE,OAAC,CAAC,UAAU,CAAC,sBAAc,CAAC,CAAC,OAAO,CAAC,sBAAc,CAAC,SAAS,CAAC;IACpE,eAAe,EAAE,OAAC;SACf,UAAU,CAAC,sBAAc,CAAC;SAC1B,OAAO,CAAC,sBAAc,CAAC,OAAO,CAAC;CACnC,CAAC,CAAC;AAIU,QAAA,2BAA2B,GAAG,OAAC,CAAC,MAAM,CAAC;IAClD,KAAK,EAAE,OAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;IAC7B,IAAI,EAAE,OAAC,CAAC,UAAU,CAAC,sBAAc,CAAC,CAAC,QAAQ,EAAE;IAC7C,eAAe,EAAE,OAAC,CAAC,UAAU,CAAC,sBAAc,CAAC,CAAC,QAAQ,EAAE;CACzD,CAAC,CAAC"}
|
|
@@ -0,0 +1,90 @@
|
|
|
1
|
+
import { z } from "zod";
|
|
2
|
+
export declare const RegionStatus: {
|
|
3
|
+
readonly ACTIVE: "active";
|
|
4
|
+
readonly DRAINING: "draining";
|
|
5
|
+
readonly INACTIVE: "inactive";
|
|
6
|
+
};
|
|
7
|
+
export declare const RegionSchema: z.ZodObject<{
|
|
8
|
+
id: z.ZodString;
|
|
9
|
+
display_name: z.ZodString;
|
|
10
|
+
slug: z.ZodString;
|
|
11
|
+
control_plane_url: z.ZodNullable<z.ZodString>;
|
|
12
|
+
database_url: z.ZodNullable<z.ZodString>;
|
|
13
|
+
is_primary: z.ZodDefault<z.ZodBoolean>;
|
|
14
|
+
status: z.ZodDefault<z.ZodEnum<["active", "draining", "inactive"]>>;
|
|
15
|
+
metadata: z.ZodDefault<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
|
|
16
|
+
created_at: z.ZodString;
|
|
17
|
+
updated_at: z.ZodString;
|
|
18
|
+
}, "strip", z.ZodTypeAny, {
|
|
19
|
+
id: string;
|
|
20
|
+
status: "active" | "draining" | "inactive";
|
|
21
|
+
metadata: Record<string, unknown>;
|
|
22
|
+
created_at: string;
|
|
23
|
+
updated_at: string;
|
|
24
|
+
display_name: string;
|
|
25
|
+
slug: string;
|
|
26
|
+
control_plane_url: string | null;
|
|
27
|
+
database_url: string | null;
|
|
28
|
+
is_primary: boolean;
|
|
29
|
+
}, {
|
|
30
|
+
id: string;
|
|
31
|
+
created_at: string;
|
|
32
|
+
updated_at: string;
|
|
33
|
+
display_name: string;
|
|
34
|
+
slug: string;
|
|
35
|
+
control_plane_url: string | null;
|
|
36
|
+
database_url: string | null;
|
|
37
|
+
status?: "active" | "draining" | "inactive" | undefined;
|
|
38
|
+
metadata?: Record<string, unknown> | undefined;
|
|
39
|
+
is_primary?: boolean | undefined;
|
|
40
|
+
}>;
|
|
41
|
+
export type Region = z.infer<typeof RegionSchema>;
|
|
42
|
+
export declare const CreateRegionInputSchema: z.ZodObject<{
|
|
43
|
+
display_name: z.ZodString;
|
|
44
|
+
slug: z.ZodString;
|
|
45
|
+
control_plane_url: z.ZodOptional<z.ZodString>;
|
|
46
|
+
is_primary: z.ZodOptional<z.ZodBoolean>;
|
|
47
|
+
status: z.ZodOptional<z.ZodEnum<["active", "draining", "inactive"]>>;
|
|
48
|
+
metadata: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
|
|
49
|
+
}, "strip", z.ZodTypeAny, {
|
|
50
|
+
display_name: string;
|
|
51
|
+
slug: string;
|
|
52
|
+
status?: "active" | "draining" | "inactive" | undefined;
|
|
53
|
+
metadata?: Record<string, unknown> | undefined;
|
|
54
|
+
control_plane_url?: string | undefined;
|
|
55
|
+
is_primary?: boolean | undefined;
|
|
56
|
+
}, {
|
|
57
|
+
display_name: string;
|
|
58
|
+
slug: string;
|
|
59
|
+
status?: "active" | "draining" | "inactive" | undefined;
|
|
60
|
+
metadata?: Record<string, unknown> | undefined;
|
|
61
|
+
control_plane_url?: string | undefined;
|
|
62
|
+
is_primary?: boolean | undefined;
|
|
63
|
+
}>;
|
|
64
|
+
export type CreateRegionInput = z.infer<typeof CreateRegionInputSchema>;
|
|
65
|
+
export declare const UpdateRegionInputSchema: z.ZodObject<{
|
|
66
|
+
display_name: z.ZodOptional<z.ZodString>;
|
|
67
|
+
control_plane_url: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
68
|
+
status: z.ZodOptional<z.ZodEnum<["active", "draining", "inactive"]>>;
|
|
69
|
+
metadata: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
|
|
70
|
+
}, "strip", z.ZodTypeAny, {
|
|
71
|
+
status?: "active" | "draining" | "inactive" | undefined;
|
|
72
|
+
metadata?: Record<string, unknown> | undefined;
|
|
73
|
+
display_name?: string | undefined;
|
|
74
|
+
control_plane_url?: string | null | undefined;
|
|
75
|
+
}, {
|
|
76
|
+
status?: "active" | "draining" | "inactive" | undefined;
|
|
77
|
+
metadata?: Record<string, unknown> | undefined;
|
|
78
|
+
display_name?: string | undefined;
|
|
79
|
+
control_plane_url?: string | null | undefined;
|
|
80
|
+
}>;
|
|
81
|
+
export type UpdateRegionInput = z.infer<typeof UpdateRegionInputSchema>;
|
|
82
|
+
export declare const MigrateRegionInputSchema: z.ZodObject<{
|
|
83
|
+
region_id: z.ZodString;
|
|
84
|
+
}, "strip", z.ZodTypeAny, {
|
|
85
|
+
region_id: string;
|
|
86
|
+
}, {
|
|
87
|
+
region_id: string;
|
|
88
|
+
}>;
|
|
89
|
+
export type MigrateRegionInput = z.infer<typeof MigrateRegionInputSchema>;
|
|
90
|
+
//# sourceMappingURL=region.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"region.d.ts","sourceRoot":"","sources":["../../src/types/region.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,eAAO,MAAM,YAAY;;;;CAIf,CAAC;AAEX,eAAO,MAAM,YAAY;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAWvB,CAAC;AAEH,MAAM,MAAM,MAAM,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,YAAY,CAAC,CAAC;AAElD,eAAO,MAAM,uBAAuB;;;;;;;;;;;;;;;;;;;;;EAOlC,CAAC;AAEH,MAAM,MAAM,iBAAiB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,uBAAuB,CAAC,CAAC;AAExE,eAAO,MAAM,uBAAuB;;;;;;;;;;;;;;;EAKlC,CAAC;AAEH,MAAM,MAAM,iBAAiB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,uBAAuB,CAAC,CAAC;AAExE,eAAO,MAAM,wBAAwB;;;;;;EAEnC,CAAC;AAEH,MAAM,MAAM,kBAAkB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,wBAAwB,CAAC,CAAC"}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.MigrateRegionInputSchema = exports.UpdateRegionInputSchema = exports.CreateRegionInputSchema = exports.RegionSchema = exports.RegionStatus = void 0;
|
|
4
|
+
const zod_1 = require("zod");
|
|
5
|
+
exports.RegionStatus = {
|
|
6
|
+
ACTIVE: "active",
|
|
7
|
+
DRAINING: "draining",
|
|
8
|
+
INACTIVE: "inactive",
|
|
9
|
+
};
|
|
10
|
+
exports.RegionSchema = zod_1.z.object({
|
|
11
|
+
id: zod_1.z.string().uuid(),
|
|
12
|
+
display_name: zod_1.z.string().min(1),
|
|
13
|
+
slug: zod_1.z.string().regex(/^[a-z][a-z0-9_]{0,62}$/),
|
|
14
|
+
control_plane_url: zod_1.z.string().url().nullable(),
|
|
15
|
+
database_url: zod_1.z.string().nullable(), // Only used at runtime, never exposed via API
|
|
16
|
+
is_primary: zod_1.z.boolean().default(false),
|
|
17
|
+
status: zod_1.z.enum(["active", "draining", "inactive"]).default("active"),
|
|
18
|
+
metadata: zod_1.z.record(zod_1.z.unknown()).default({}),
|
|
19
|
+
created_at: zod_1.z.string(),
|
|
20
|
+
updated_at: zod_1.z.string(),
|
|
21
|
+
});
|
|
22
|
+
exports.CreateRegionInputSchema = zod_1.z.object({
|
|
23
|
+
display_name: zod_1.z.string().min(1),
|
|
24
|
+
slug: zod_1.z.string().regex(/^[a-z][a-z0-9_]{0,62}$/),
|
|
25
|
+
control_plane_url: zod_1.z.string().url().optional(),
|
|
26
|
+
is_primary: zod_1.z.boolean().optional(),
|
|
27
|
+
status: zod_1.z.enum(["active", "draining", "inactive"]).optional(),
|
|
28
|
+
metadata: zod_1.z.record(zod_1.z.unknown()).optional(),
|
|
29
|
+
});
|
|
30
|
+
exports.UpdateRegionInputSchema = zod_1.z.object({
|
|
31
|
+
display_name: zod_1.z.string().min(1).optional(),
|
|
32
|
+
control_plane_url: zod_1.z.string().url().nullable().optional(),
|
|
33
|
+
status: zod_1.z.enum(["active", "draining", "inactive"]).optional(),
|
|
34
|
+
metadata: zod_1.z.record(zod_1.z.unknown()).optional(),
|
|
35
|
+
});
|
|
36
|
+
exports.MigrateRegionInputSchema = zod_1.z.object({
|
|
37
|
+
region_id: zod_1.z.string().uuid(),
|
|
38
|
+
});
|
|
39
|
+
//# sourceMappingURL=region.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"region.js","sourceRoot":"","sources":["../../src/types/region.ts"],"names":[],"mappings":";;;AAAA,6BAAwB;AAEX,QAAA,YAAY,GAAG;IAC1B,MAAM,EAAE,QAAQ;IAChB,QAAQ,EAAE,UAAU;IACpB,QAAQ,EAAE,UAAU;CACZ,CAAC;AAEE,QAAA,YAAY,GAAG,OAAC,CAAC,MAAM,CAAC;IACnC,EAAE,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE;IACrB,YAAY,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IAC/B,IAAI,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,KAAK,CAAC,wBAAwB,CAAC;IAChD,iBAAiB,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE;IAC9C,YAAY,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,EAAE,8CAA8C;IACnF,UAAU,EAAE,OAAC,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC;IACtC,MAAM,EAAE,OAAC,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,UAAU,EAAE,UAAU,CAAC,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC;IACpE,QAAQ,EAAE,OAAC,CAAC,MAAM,CAAC,OAAC,CAAC,OAAO,EAAE,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC;IAC3C,UAAU,EAAE,OAAC,CAAC,MAAM,EAAE;IACtB,UAAU,EAAE,OAAC,CAAC,MAAM,EAAE;CACvB,CAAC,CAAC;AAIU,QAAA,uBAAuB,GAAG,OAAC,CAAC,MAAM,CAAC;IAC9C,YAAY,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IAC/B,IAAI,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,KAAK,CAAC,wBAAwB,CAAC;IAChD,iBAAiB,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE;IAC9C,UAAU,EAAE,OAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;IAClC,MAAM,EAAE,OAAC,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,UAAU,EAAE,UAAU,CAAC,CAAC,CAAC,QAAQ,EAAE;IAC7D,QAAQ,EAAE,OAAC,CAAC,MAAM,CAAC,OAAC,CAAC,OAAO,EAAE,CAAC,CAAC,QAAQ,EAAE;CAC3C,CAAC,CAAC;AAIU,QAAA,uBAAuB,GAAG,OAAC,CAAC,MAAM,CAAC;IAC9C,YAAY,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE;IAC1C,iBAAiB,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE;IACzD,MAAM,EAAE,OAAC,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,UAAU,EAAE,UAAU,CAAC,CAAC,CAAC,QAAQ,EAAE;IAC7D,QAAQ,EAAE,OAAC,CAAC,MAAM,CAAC,OAAC,CAAC,OAAO,EAAE,CAAC,CAAC,QAAQ,EAAE;CAC3C,CAAC,CAAC;AAIU,QAAA,wBAAwB,GAAG,OAAC,CAAC,MAAM,CAAC;IAC/C,SAAS,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE;CAC7B,CAAC,CAAC"}
|
|
@@ -0,0 +1,148 @@
|
|
|
1
|
+
import { z } from "zod";
|
|
2
|
+
import type { ResolvedConfig } from "./config.js";
|
|
3
|
+
export declare const IsolationStrategy: {
|
|
4
|
+
readonly SHARED_RLS: "SHARED_RLS";
|
|
5
|
+
readonly SCHEMA_PER_TENANT: "SCHEMA_PER_TENANT";
|
|
6
|
+
readonly DB_PER_TENANT: "DB_PER_TENANT";
|
|
7
|
+
};
|
|
8
|
+
export type IsolationStrategy = (typeof IsolationStrategy)[keyof typeof IsolationStrategy];
|
|
9
|
+
export declare const TenantStatus: {
|
|
10
|
+
readonly ACTIVE: "active";
|
|
11
|
+
readonly ARCHIVED: "archived";
|
|
12
|
+
};
|
|
13
|
+
export type TenantStatus = (typeof TenantStatus)[keyof typeof TenantStatus];
|
|
14
|
+
export declare const TenantNodeSchema: z.ZodObject<{
|
|
15
|
+
id: z.ZodString;
|
|
16
|
+
parent_id: z.ZodNullable<z.ZodString>;
|
|
17
|
+
ancestry_path: z.ZodString;
|
|
18
|
+
depth: z.ZodNumber;
|
|
19
|
+
name: z.ZodString;
|
|
20
|
+
slug: z.ZodString;
|
|
21
|
+
config: z.ZodDefault<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
|
|
22
|
+
metadata: z.ZodDefault<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
|
|
23
|
+
isolation_strategy: z.ZodDefault<z.ZodNativeEnum<{
|
|
24
|
+
readonly SHARED_RLS: "SHARED_RLS";
|
|
25
|
+
readonly SCHEMA_PER_TENANT: "SCHEMA_PER_TENANT";
|
|
26
|
+
readonly DB_PER_TENANT: "DB_PER_TENANT";
|
|
27
|
+
}>>;
|
|
28
|
+
status: z.ZodDefault<z.ZodNativeEnum<{
|
|
29
|
+
readonly ACTIVE: "active";
|
|
30
|
+
readonly ARCHIVED: "archived";
|
|
31
|
+
}>>;
|
|
32
|
+
region_id: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
33
|
+
deleted_at: z.ZodDefault<z.ZodNullable<z.ZodString>>;
|
|
34
|
+
created_at: z.ZodString;
|
|
35
|
+
updated_at: z.ZodString;
|
|
36
|
+
}, "strip", z.ZodTypeAny, {
|
|
37
|
+
id: string;
|
|
38
|
+
status: "active" | "archived";
|
|
39
|
+
metadata: Record<string, unknown>;
|
|
40
|
+
created_at: string;
|
|
41
|
+
updated_at: string;
|
|
42
|
+
slug: string;
|
|
43
|
+
parent_id: string | null;
|
|
44
|
+
ancestry_path: string;
|
|
45
|
+
depth: number;
|
|
46
|
+
name: string;
|
|
47
|
+
config: Record<string, unknown>;
|
|
48
|
+
isolation_strategy: "SHARED_RLS" | "SCHEMA_PER_TENANT" | "DB_PER_TENANT";
|
|
49
|
+
deleted_at: string | null;
|
|
50
|
+
region_id?: string | null | undefined;
|
|
51
|
+
}, {
|
|
52
|
+
id: string;
|
|
53
|
+
created_at: string;
|
|
54
|
+
updated_at: string;
|
|
55
|
+
slug: string;
|
|
56
|
+
parent_id: string | null;
|
|
57
|
+
ancestry_path: string;
|
|
58
|
+
depth: number;
|
|
59
|
+
name: string;
|
|
60
|
+
status?: "active" | "archived" | undefined;
|
|
61
|
+
metadata?: Record<string, unknown> | undefined;
|
|
62
|
+
region_id?: string | null | undefined;
|
|
63
|
+
config?: Record<string, unknown> | undefined;
|
|
64
|
+
isolation_strategy?: "SHARED_RLS" | "SCHEMA_PER_TENANT" | "DB_PER_TENANT" | undefined;
|
|
65
|
+
deleted_at?: string | null | undefined;
|
|
66
|
+
}>;
|
|
67
|
+
export type TenantNode = z.infer<typeof TenantNodeSchema>;
|
|
68
|
+
export declare const CreateTenantInputSchema: z.ZodObject<{
|
|
69
|
+
parent_id: z.ZodDefault<z.ZodNullable<z.ZodString>>;
|
|
70
|
+
name: z.ZodString;
|
|
71
|
+
slug: z.ZodString;
|
|
72
|
+
config: z.ZodDefault<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
|
|
73
|
+
metadata: z.ZodDefault<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
|
|
74
|
+
isolation_strategy: z.ZodDefault<z.ZodNativeEnum<{
|
|
75
|
+
readonly SHARED_RLS: "SHARED_RLS";
|
|
76
|
+
readonly SCHEMA_PER_TENANT: "SCHEMA_PER_TENANT";
|
|
77
|
+
readonly DB_PER_TENANT: "DB_PER_TENANT";
|
|
78
|
+
}>>;
|
|
79
|
+
region_id: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
80
|
+
}, "strip", z.ZodTypeAny, {
|
|
81
|
+
metadata: Record<string, unknown>;
|
|
82
|
+
slug: string;
|
|
83
|
+
parent_id: string | null;
|
|
84
|
+
name: string;
|
|
85
|
+
config: Record<string, unknown>;
|
|
86
|
+
isolation_strategy: "SHARED_RLS" | "SCHEMA_PER_TENANT" | "DB_PER_TENANT";
|
|
87
|
+
region_id?: string | null | undefined;
|
|
88
|
+
}, {
|
|
89
|
+
slug: string;
|
|
90
|
+
name: string;
|
|
91
|
+
metadata?: Record<string, unknown> | undefined;
|
|
92
|
+
region_id?: string | null | undefined;
|
|
93
|
+
parent_id?: string | null | undefined;
|
|
94
|
+
config?: Record<string, unknown> | undefined;
|
|
95
|
+
isolation_strategy?: "SHARED_RLS" | "SCHEMA_PER_TENANT" | "DB_PER_TENANT" | undefined;
|
|
96
|
+
}>;
|
|
97
|
+
export type CreateTenantInput = z.infer<typeof CreateTenantInputSchema>;
|
|
98
|
+
export declare const UpdateTenantInputSchema: z.ZodObject<{
|
|
99
|
+
name: z.ZodOptional<z.ZodString>;
|
|
100
|
+
slug: z.ZodOptional<z.ZodString>;
|
|
101
|
+
config: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
|
|
102
|
+
metadata: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
|
|
103
|
+
}, "strip", z.ZodTypeAny, {
|
|
104
|
+
metadata?: Record<string, unknown> | undefined;
|
|
105
|
+
slug?: string | undefined;
|
|
106
|
+
name?: string | undefined;
|
|
107
|
+
config?: Record<string, unknown> | undefined;
|
|
108
|
+
}, {
|
|
109
|
+
metadata?: Record<string, unknown> | undefined;
|
|
110
|
+
slug?: string | undefined;
|
|
111
|
+
name?: string | undefined;
|
|
112
|
+
config?: Record<string, unknown> | undefined;
|
|
113
|
+
}>;
|
|
114
|
+
export type UpdateTenantInput = z.infer<typeof UpdateTenantInputSchema>;
|
|
115
|
+
export declare const MoveTenantInputSchema: z.ZodObject<{
|
|
116
|
+
new_parent_id: z.ZodString;
|
|
117
|
+
}, "strip", z.ZodTypeAny, {
|
|
118
|
+
new_parent_id: string;
|
|
119
|
+
}, {
|
|
120
|
+
new_parent_id: string;
|
|
121
|
+
}>;
|
|
122
|
+
export type MoveTenantInput = z.infer<typeof MoveTenantInputSchema>;
|
|
123
|
+
/** Legacy shape used by the inline /:id/context endpoint. */
|
|
124
|
+
export interface TenantContextLegacy {
|
|
125
|
+
tenant_id: string;
|
|
126
|
+
ancestry_path: string;
|
|
127
|
+
depth: number;
|
|
128
|
+
resolved_config: Record<string, unknown>;
|
|
129
|
+
resolved_permissions: Record<string, ResolvedPermission>;
|
|
130
|
+
isolation_strategy: IsolationStrategy;
|
|
131
|
+
}
|
|
132
|
+
/** Full impersonation context returned by getTenantContext(). */
|
|
133
|
+
export interface TenantContext {
|
|
134
|
+
tenant: TenantNode;
|
|
135
|
+
config: ResolvedConfig;
|
|
136
|
+
permissions: Record<string, ResolvedPermission>;
|
|
137
|
+
ancestors: TenantNode[];
|
|
138
|
+
}
|
|
139
|
+
export interface ResolvedPermission {
|
|
140
|
+
policy_id: string;
|
|
141
|
+
key: string;
|
|
142
|
+
value: unknown;
|
|
143
|
+
mode: string;
|
|
144
|
+
source_tenant_id: string;
|
|
145
|
+
locked: boolean;
|
|
146
|
+
delegated: boolean;
|
|
147
|
+
}
|
|
148
|
+
//# sourceMappingURL=tenant.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tenant.d.ts","sourceRoot":"","sources":["../../src/types/tenant.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAElD,eAAO,MAAM,iBAAiB;;;;CAIpB,CAAC;AAEX,MAAM,MAAM,iBAAiB,GAC3B,CAAC,OAAO,iBAAiB,CAAC,CAAC,MAAM,OAAO,iBAAiB,CAAC,CAAC;AAE7D,eAAO,MAAM,YAAY;;;CAGf,CAAC;AAEX,MAAM,MAAM,YAAY,GAAG,CAAC,OAAO,YAAY,CAAC,CAAC,MAAM,OAAO,YAAY,CAAC,CAAC;AAE5E,eAAO,MAAM,gBAAgB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAe3B,CAAC;AAEH,MAAM,MAAM,UAAU,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,gBAAgB,CAAC,CAAC;AAE1D,eAAO,MAAM,uBAAuB;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAalC,CAAC;AAEH,MAAM,MAAM,iBAAiB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,uBAAuB,CAAC,CAAC;AAExE,eAAO,MAAM,uBAAuB;;;;;;;;;;;;;;;EAQlC,CAAC;AAEH,MAAM,MAAM,iBAAiB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,uBAAuB,CAAC,CAAC;AAExE,eAAO,MAAM,qBAAqB;;;;;;EAEhC,CAAC;AAEH,MAAM,MAAM,eAAe,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,qBAAqB,CAAC,CAAC;AAEpE,6DAA6D;AAC7D,MAAM,WAAW,mBAAmB;IAClC,SAAS,EAAE,MAAM,CAAC;IAClB,aAAa,EAAE,MAAM,CAAC;IACtB,KAAK,EAAE,MAAM,CAAC;IACd,eAAe,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACzC,oBAAoB,EAAE,MAAM,CAAC,MAAM,EAAE,kBAAkB,CAAC,CAAC;IACzD,kBAAkB,EAAE,iBAAiB,CAAC;CACvC;AAED,iEAAiE;AACjE,MAAM,WAAW,aAAa;IAC5B,MAAM,EAAE,UAAU,CAAC;IACnB,MAAM,EAAE,cAAc,CAAC;IACvB,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,kBAAkB,CAAC,CAAC;IAChD,SAAS,EAAE,UAAU,EAAE,CAAC;CACzB;AAED,MAAM,WAAW,kBAAkB;IACjC,SAAS,EAAE,MAAM,CAAC;IAClB,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,OAAO,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;IACb,gBAAgB,EAAE,MAAM,CAAC;IACzB,MAAM,EAAE,OAAO,CAAC;IAChB,SAAS,EAAE,OAAO,CAAC;CACpB"}
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.MoveTenantInputSchema = exports.UpdateTenantInputSchema = exports.CreateTenantInputSchema = exports.TenantNodeSchema = exports.TenantStatus = exports.IsolationStrategy = void 0;
|
|
4
|
+
const zod_1 = require("zod");
|
|
5
|
+
exports.IsolationStrategy = {
|
|
6
|
+
SHARED_RLS: "SHARED_RLS",
|
|
7
|
+
SCHEMA_PER_TENANT: "SCHEMA_PER_TENANT",
|
|
8
|
+
DB_PER_TENANT: "DB_PER_TENANT",
|
|
9
|
+
};
|
|
10
|
+
exports.TenantStatus = {
|
|
11
|
+
ACTIVE: "active",
|
|
12
|
+
ARCHIVED: "archived",
|
|
13
|
+
};
|
|
14
|
+
exports.TenantNodeSchema = zod_1.z.object({
|
|
15
|
+
id: zod_1.z.string().uuid(),
|
|
16
|
+
parent_id: zod_1.z.string().uuid().nullable(),
|
|
17
|
+
ancestry_path: zod_1.z.string(),
|
|
18
|
+
depth: zod_1.z.number().int().min(0),
|
|
19
|
+
name: zod_1.z.string().min(1).max(255),
|
|
20
|
+
slug: zod_1.z.string().regex(/^[a-z][a-z0-9_]{0,62}$/),
|
|
21
|
+
config: zod_1.z.record(zod_1.z.unknown()).default({}),
|
|
22
|
+
metadata: zod_1.z.record(zod_1.z.unknown()).default({}),
|
|
23
|
+
isolation_strategy: zod_1.z.nativeEnum(exports.IsolationStrategy).default(exports.IsolationStrategy.SHARED_RLS),
|
|
24
|
+
status: zod_1.z.nativeEnum(exports.TenantStatus).default(exports.TenantStatus.ACTIVE),
|
|
25
|
+
region_id: zod_1.z.string().uuid().nullable().optional(),
|
|
26
|
+
deleted_at: zod_1.z.string().datetime().nullable().default(null),
|
|
27
|
+
created_at: zod_1.z.string().datetime(),
|
|
28
|
+
updated_at: zod_1.z.string().datetime(),
|
|
29
|
+
});
|
|
30
|
+
exports.CreateTenantInputSchema = zod_1.z.object({
|
|
31
|
+
parent_id: zod_1.z.string().uuid().nullable().default(null),
|
|
32
|
+
name: zod_1.z.string().min(1).max(255),
|
|
33
|
+
slug: zod_1.z.string().regex(/^[a-z][a-z0-9_]{0,62}$/, {
|
|
34
|
+
message: "Slug must start with a lowercase letter, contain only lowercase letters, numbers, and underscores, and be at most 63 characters",
|
|
35
|
+
}),
|
|
36
|
+
config: zod_1.z.record(zod_1.z.unknown()).default({}),
|
|
37
|
+
metadata: zod_1.z.record(zod_1.z.unknown()).default({}),
|
|
38
|
+
isolation_strategy: zod_1.z
|
|
39
|
+
.nativeEnum(exports.IsolationStrategy)
|
|
40
|
+
.default(exports.IsolationStrategy.SHARED_RLS),
|
|
41
|
+
region_id: zod_1.z.string().uuid().nullable().optional(),
|
|
42
|
+
});
|
|
43
|
+
exports.UpdateTenantInputSchema = zod_1.z.object({
|
|
44
|
+
name: zod_1.z.string().min(1).max(255).optional(),
|
|
45
|
+
slug: zod_1.z
|
|
46
|
+
.string()
|
|
47
|
+
.regex(/^[a-z][a-z0-9_]{0,62}$/)
|
|
48
|
+
.optional(),
|
|
49
|
+
config: zod_1.z.record(zod_1.z.unknown()).optional(),
|
|
50
|
+
metadata: zod_1.z.record(zod_1.z.unknown()).optional(),
|
|
51
|
+
});
|
|
52
|
+
exports.MoveTenantInputSchema = zod_1.z.object({
|
|
53
|
+
new_parent_id: zod_1.z.string().uuid(),
|
|
54
|
+
});
|
|
55
|
+
//# sourceMappingURL=tenant.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tenant.js","sourceRoot":"","sources":["../../src/types/tenant.ts"],"names":[],"mappings":"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"}
|