@planecloud/validation 1.0.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.
@@ -0,0 +1,137 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.DeleteInstanceSchema = exports.SuspendInstanceSchema = exports.ResizeInstanceSchema = exports.StartProvisioningSchema = exports.OrchestrationWorkflowSchema = exports.CreateInstanceTemplateSchema = exports.InstanceTemplateSchema = exports.VirtualMachineSchema = exports.UpdateInstanceSchema = exports.CreateInstanceSchema = exports.InstanceSchema = exports.InstanceMetadataSchema = exports.ConnectionConfigSchema = void 0;
4
+ const zod_1 = require("zod");
5
+ const common_1 = require("../common");
6
+ exports.ConnectionConfigSchema = zod_1.z.object({
7
+ host: zod_1.z.string().min(1),
8
+ port: zod_1.z.number().int().min(1).max(65535),
9
+ username: zod_1.z.string().optional(),
10
+ database: zod_1.z.string().optional(),
11
+ ssl: zod_1.z.boolean(),
12
+ password: zod_1.z.string().optional(), // Only for initial setup
13
+ });
14
+ exports.InstanceMetadataSchema = zod_1.z.object({
15
+ version: zod_1.z.string().min(1),
16
+ configuration: zod_1.z.record(zod_1.z.any()),
17
+ healthCheckUrl: zod_1.z.string().url().optional(),
18
+ deployedBy: zod_1.z.string().uuid(),
19
+ deployedAt: zod_1.z.date(),
20
+ lastHealthCheck: zod_1.z.date().optional(),
21
+ provider: zod_1.z.object({
22
+ name: zod_1.z.string().min(1),
23
+ vmId: zod_1.z.string().optional(),
24
+ regionId: zod_1.z.string().uuid(),
25
+ }),
26
+ });
27
+ exports.InstanceSchema = common_1.BaseEntitySchema.extend({
28
+ organizationId: zod_1.z.string().uuid(),
29
+ name: zod_1.z.string().min(1).max(100),
30
+ slug: zod_1.z
31
+ .string()
32
+ .min(2)
33
+ .max(50)
34
+ .regex(/^[a-z0-9-]+$/),
35
+ type: zod_1.z.enum(["DATABASE", "APPLICATION", "CACHE", "QUEUE"]),
36
+ status: common_1.InstanceStatusSchema,
37
+ specification: common_1.SpecificationSchema,
38
+ region: common_1.RegionSchema,
39
+ connectionConfig: exports.ConnectionConfigSchema,
40
+ virtualMachineId: zod_1.z.string().uuid().optional(),
41
+ version: zod_1.z.string().min(1),
42
+ tags: common_1.TagsSchema,
43
+ metadata: exports.InstanceMetadataSchema,
44
+ billingAccountId: zod_1.z.string().uuid(),
45
+ });
46
+ exports.CreateInstanceSchema = zod_1.z.object({
47
+ name: zod_1.z.string().min(1).max(100),
48
+ slug: zod_1.z
49
+ .string()
50
+ .min(2)
51
+ .max(50)
52
+ .regex(/^[a-z0-9-]+$/),
53
+ type: zod_1.z.enum(["DATABASE", "APPLICATION", "CACHE", "QUEUE"]),
54
+ specification: common_1.SpecificationSchema,
55
+ regionId: zod_1.z.string().uuid(),
56
+ connectionConfig: exports.ConnectionConfigSchema.omit({ host: true }),
57
+ tags: common_1.TagsSchema.optional(),
58
+ configuration: zod_1.z.record(zod_1.z.any()).optional(),
59
+ });
60
+ exports.UpdateInstanceSchema = zod_1.z.object({
61
+ name: zod_1.z.string().min(1).max(100).optional(),
62
+ specification: common_1.SpecificationSchema.optional(),
63
+ tags: common_1.TagsSchema.optional(),
64
+ configuration: zod_1.z.record(zod_1.z.any()).optional(),
65
+ });
66
+ exports.VirtualMachineSchema = common_1.BaseEntitySchema.extend({
67
+ provider: zod_1.z.string().min(1),
68
+ providerId: zod_1.z.string().min(1),
69
+ name: zod_1.z.string().min(1).max(100),
70
+ specification: common_1.SpecificationSchema,
71
+ region: common_1.RegionSchema,
72
+ ipAddress: zod_1.z.string().ip(),
73
+ privateIpAddress: zod_1.z.string().ip().optional(),
74
+ status: zod_1.z.enum([
75
+ "PENDING",
76
+ "RUNNING",
77
+ "STOPPING",
78
+ "STOPPED",
79
+ "TERMINATED",
80
+ "ERROR",
81
+ ]),
82
+ sshKeyId: zod_1.z.string().optional(),
83
+ tags: common_1.TagsSchema,
84
+ });
85
+ exports.InstanceTemplateSchema = common_1.BaseEntitySchema.extend({
86
+ organizationId: zod_1.z.string().uuid(),
87
+ name: zod_1.z.string().min(1).max(100),
88
+ type: zod_1.z.enum(["DATABASE", "APPLICATION", "CACHE", "QUEUE"]),
89
+ specification: common_1.SpecificationSchema,
90
+ configuration: zod_1.z.record(zod_1.z.any()),
91
+ tags: common_1.TagsSchema,
92
+ isActive: zod_1.z.boolean(),
93
+ });
94
+ exports.CreateInstanceTemplateSchema = zod_1.z.object({
95
+ name: zod_1.z.string().min(1).max(100),
96
+ type: zod_1.z.enum(["DATABASE", "APPLICATION", "CACHE", "QUEUE"]),
97
+ specification: common_1.SpecificationSchema,
98
+ configuration: zod_1.z.record(zod_1.z.any()),
99
+ tags: common_1.TagsSchema.optional(),
100
+ });
101
+ exports.OrchestrationWorkflowSchema = common_1.BaseEntitySchema.extend({
102
+ instanceId: zod_1.z.string().uuid(),
103
+ workflowId: zod_1.z.string().min(1),
104
+ type: zod_1.z.enum([
105
+ "PROVISION",
106
+ "RECONFIGURE",
107
+ "SUSPEND",
108
+ "RESUME",
109
+ "DELETE",
110
+ "BACKUP",
111
+ "RESTORE",
112
+ ]),
113
+ status: zod_1.z.enum(["RUNNING", "COMPLETED", "FAILED", "CANCELLED"]),
114
+ input: zod_1.z.record(zod_1.z.any()),
115
+ output: zod_1.z.record(zod_1.z.any()).optional(),
116
+ error: zod_1.z.string().optional(),
117
+ startedAt: zod_1.z.date(),
118
+ completedAt: zod_1.z.date().optional(),
119
+ });
120
+ exports.StartProvisioningSchema = zod_1.z.object({
121
+ instanceId: zod_1.z.string().uuid(),
122
+ configuration: zod_1.z.record(zod_1.z.any()).optional(),
123
+ });
124
+ exports.ResizeInstanceSchema = zod_1.z.object({
125
+ instanceId: zod_1.z.string().uuid(),
126
+ specification: common_1.SpecificationSchema,
127
+ });
128
+ exports.SuspendInstanceSchema = zod_1.z.object({
129
+ instanceId: zod_1.z.string().uuid(),
130
+ reason: zod_1.z.string().max(500).optional(),
131
+ });
132
+ exports.DeleteInstanceSchema = zod_1.z.object({
133
+ instanceId: zod_1.z.string().uuid(),
134
+ force: zod_1.z.boolean().optional().default(false),
135
+ backupBeforeDelete: zod_1.z.boolean().optional().default(true),
136
+ });
137
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/provisioning/index.ts"],"names":[],"mappings":"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"}
package/package.json ADDED
@@ -0,0 +1,35 @@
1
+ {
2
+ "name": "@planecloud/validation",
3
+ "version": "1.0.0",
4
+ "description": "Zod validation schemas for PlaneCloud platform",
5
+ "main": "dist/index.js",
6
+ "types": "dist/index.d.ts",
7
+ "scripts": {
8
+ "build": "tsc",
9
+ "dev": "tsc --watch",
10
+ "clean": "rm -rf dist",
11
+ "prepublishOnly": "npm run clean && npm run build"
12
+ },
13
+ "keywords": [
14
+ "planecloud",
15
+ "validation",
16
+ "zod",
17
+ "schemas"
18
+ ],
19
+ "author": "PlaneCloud Team",
20
+ "license": "MIT",
21
+ "dependencies": {
22
+ "zod": "^3.22.0"
23
+ },
24
+ "devDependencies": {
25
+ "typescript": "^5.0.0"
26
+ },
27
+ "files": [
28
+ "dist"
29
+ ],
30
+ "repository": {
31
+ "type": "git",
32
+ "url": "https://github.com/planecloud/validation.git"
33
+ },
34
+ "homepage": "https://github.com/planecloud/validation#readme"
35
+ }