@brimble/models 3.1.9 → 3.2.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.
Files changed (47) hide show
  1. package/compute.ts +1 -0
  2. package/db-image.ts +8 -4
  3. package/dist/compute.js +1 -0
  4. package/dist/db-image.js +8 -4
  5. package/dist/domain/index.js +9 -0
  6. package/dist/enum/index.d.ts +8 -0
  7. package/dist/enum/index.js +10 -1
  8. package/dist/env.js +1 -1
  9. package/dist/framework.d.ts +30 -0
  10. package/dist/framework.js +79 -0
  11. package/dist/index.d.ts +3 -2
  12. package/dist/index.js +5 -2
  13. package/dist/plan_configuration.js +5 -0
  14. package/dist/project/index.js +2 -2
  15. package/dist/region.js +1 -0
  16. package/dist/server.js +20 -0
  17. package/dist/subscription.js +1 -1
  18. package/dist/token.js +1 -1
  19. package/dist/types/compute.d.ts +1 -0
  20. package/dist/types/db-image.d.ts +5 -1
  21. package/dist/types/domain/index.d.ts +4 -0
  22. package/dist/types/framework.d.ts +38 -0
  23. package/dist/types/framework.js +2 -0
  24. package/dist/types/index.d.ts +1 -0
  25. package/dist/types/plan_configuration.d.ts +5 -0
  26. package/dist/types/region.d.ts +1 -0
  27. package/dist/types/server.d.ts +5 -0
  28. package/domain/index.ts +9 -0
  29. package/enum/index.ts +12 -3
  30. package/env.ts +1 -1
  31. package/framework.ts +83 -0
  32. package/index.ts +4 -0
  33. package/package.json +1 -1
  34. package/plan_configuration.ts +5 -0
  35. package/project/index.ts +2 -2
  36. package/region.ts +1 -0
  37. package/server.ts +20 -0
  38. package/subscription.ts +1 -1
  39. package/token.ts +1 -1
  40. package/types/compute.ts +1 -0
  41. package/types/db-image.ts +3 -2
  42. package/types/domain/index.ts +4 -0
  43. package/types/framework.ts +40 -0
  44. package/types/index.ts +1 -0
  45. package/types/plan_configuration.ts +5 -0
  46. package/types/region.ts +1 -0
  47. package/types/server.ts +10 -0
package/compute.ts CHANGED
@@ -68,6 +68,7 @@ const ComputeChangeSchema = new Schema({
68
68
  type: Boolean,
69
69
  default: false,
70
70
  },
71
+ storage_pricing_factor: { type: Number, required: false, default: 1 },
71
72
  });
72
73
 
73
74
  export default model<IComputeChange>(
package/db-image.ts CHANGED
@@ -39,18 +39,22 @@ const dbImageSchema = new Schema(
39
39
  },
40
40
  port: {
41
41
  type: Number,
42
- required: true
42
+ required: true,
43
43
  },
44
44
  volumePath: {
45
45
  type: String,
46
46
  required: true,
47
- default: "/data"
47
+ default: "/data",
48
48
  },
49
49
  recommendations: {
50
50
  required: false,
51
51
  type: Array,
52
- default: []
53
- }
52
+ default: [],
53
+ },
54
+ protocol: {
55
+ required: true,
56
+ type: String,
57
+ },
54
58
  },
55
59
  { timestamps: true },
56
60
  );
package/dist/compute.js CHANGED
@@ -68,5 +68,6 @@ const ComputeChangeSchema = new mongoose_1.Schema({
68
68
  type: Boolean,
69
69
  default: false,
70
70
  },
71
+ storage_pricing_factor: { type: Number, required: false, default: 1 },
71
72
  });
72
73
  exports.default = (0, mongoose_1.model)("ComputeChange", ComputeChangeSchema, "compute_changes");
package/dist/db-image.js CHANGED
@@ -38,17 +38,21 @@ const dbImageSchema = new mongoose_1.Schema({
38
38
  },
39
39
  port: {
40
40
  type: Number,
41
- required: true
41
+ required: true,
42
42
  },
43
43
  volumePath: {
44
44
  type: String,
45
45
  required: true,
46
- default: "/data"
46
+ default: "/data",
47
47
  },
48
48
  recommendations: {
49
49
  required: false,
50
50
  type: Array,
51
- default: []
52
- }
51
+ default: [],
52
+ },
53
+ protocol: {
54
+ required: true,
55
+ type: String,
56
+ },
53
57
  }, { timestamps: true });
54
58
  exports.default = (0, mongoose_1.model)("DbImage", dbImageSchema);
@@ -25,6 +25,15 @@ const domainSchema = new mongoose_1.Schema({
25
25
  type: Boolean,
26
26
  default: false,
27
27
  },
28
+ provider: {
29
+ type: String,
30
+ required: true,
31
+ },
32
+ renewal_duration: {
33
+ type: Number,
34
+ required: false,
35
+ default: 1,
36
+ },
28
37
  is_discounted: {
29
38
  type: Boolean,
30
39
  default: false,
@@ -64,6 +64,7 @@ export declare enum SUBSCRIPTION_PLAN_TYPE {
64
64
  DeveloperPlan = "DEVELOPER_PLAN",
65
65
  TeamPlan = "TEAM_PLAN",
66
66
  DomainPlan = "DOMAIN_PLAN",
67
+ HackerPlan = "HACKER_PLAN",
67
68
  LiscensePlan = "LISCENSE_PLAN"
68
69
  }
69
70
  export declare enum OAUTH_PERMISSIONS {
@@ -105,6 +106,7 @@ export declare enum REGION_CONTINENT {
105
106
  export declare enum ServiceType {
106
107
  Database = "database",
107
108
  WebService = "web-service",
109
+ Static = "static",
108
110
  Mcp = "mcp",
109
111
  Liscense = "liscense",
110
112
  Worker = "worker"
@@ -142,3 +144,9 @@ export declare enum SCALING_METRIC {
142
144
  ResponseTime = "RESPONSE_TIME",
143
145
  CustomMetric = "CUSTOM_METRIC"
144
146
  }
147
+ export declare enum FrameworkApplicationType {
148
+ Spa = "spa",
149
+ Ssr = "ssr",
150
+ Static = "static",
151
+ Backend = "backend"
152
+ }
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.SCALING_METRIC = exports.SCALING_STRATEGY = exports.LicenseStatus = exports.JobStatus = exports.DatabaseEngine = exports.ServiceType = exports.REGION_CONTINENT = exports.PERMISSION_TYPE = exports.ROLES = exports.DNS_TYPE = exports.SERVER_STATUS = exports.OAUTH_PERMISSIONS = exports.SUBSCRIPTION_PLAN_TYPE = exports.SUBSCRIPTION_STATUS = exports.PROJECT_STATUS = exports.CARD_TYPES = exports.INTEGRATION_PROVIDERS = exports.INTEGRATION_TYPES = exports.ENVIRONMENT = exports.REQUEST_TYPE = exports.BUILD_DISABLED_BY = exports.GIT_TYPE = void 0;
3
+ exports.FrameworkApplicationType = exports.SCALING_METRIC = exports.SCALING_STRATEGY = exports.LicenseStatus = exports.JobStatus = exports.DatabaseEngine = exports.ServiceType = exports.REGION_CONTINENT = exports.PERMISSION_TYPE = exports.ROLES = exports.DNS_TYPE = exports.SERVER_STATUS = exports.OAUTH_PERMISSIONS = exports.SUBSCRIPTION_PLAN_TYPE = exports.SUBSCRIPTION_STATUS = exports.PROJECT_STATUS = exports.CARD_TYPES = exports.INTEGRATION_PROVIDERS = exports.INTEGRATION_TYPES = exports.ENVIRONMENT = exports.REQUEST_TYPE = exports.BUILD_DISABLED_BY = exports.GIT_TYPE = void 0;
4
4
  var GIT_TYPE;
5
5
  (function (GIT_TYPE) {
6
6
  GIT_TYPE["GITHUB"] = "GITHUB";
@@ -77,6 +77,7 @@ var SUBSCRIPTION_PLAN_TYPE;
77
77
  SUBSCRIPTION_PLAN_TYPE["DeveloperPlan"] = "DEVELOPER_PLAN";
78
78
  SUBSCRIPTION_PLAN_TYPE["TeamPlan"] = "TEAM_PLAN";
79
79
  SUBSCRIPTION_PLAN_TYPE["DomainPlan"] = "DOMAIN_PLAN";
80
+ SUBSCRIPTION_PLAN_TYPE["HackerPlan"] = "HACKER_PLAN";
80
81
  SUBSCRIPTION_PLAN_TYPE["LiscensePlan"] = "LISCENSE_PLAN";
81
82
  })(SUBSCRIPTION_PLAN_TYPE = exports.SUBSCRIPTION_PLAN_TYPE || (exports.SUBSCRIPTION_PLAN_TYPE = {}));
82
83
  var OAUTH_PERMISSIONS;
@@ -125,6 +126,7 @@ var ServiceType;
125
126
  (function (ServiceType) {
126
127
  ServiceType["Database"] = "database";
127
128
  ServiceType["WebService"] = "web-service";
129
+ ServiceType["Static"] = "static";
128
130
  ServiceType["Mcp"] = "mcp";
129
131
  ServiceType["Liscense"] = "liscense";
130
132
  ServiceType["Worker"] = "worker";
@@ -167,3 +169,10 @@ var SCALING_METRIC;
167
169
  SCALING_METRIC["ResponseTime"] = "RESPONSE_TIME";
168
170
  SCALING_METRIC["CustomMetric"] = "CUSTOM_METRIC";
169
171
  })(SCALING_METRIC = exports.SCALING_METRIC || (exports.SCALING_METRIC = {}));
172
+ var FrameworkApplicationType;
173
+ (function (FrameworkApplicationType) {
174
+ FrameworkApplicationType["Spa"] = "spa";
175
+ FrameworkApplicationType["Ssr"] = "ssr";
176
+ FrameworkApplicationType["Static"] = "static";
177
+ FrameworkApplicationType["Backend"] = "backend";
178
+ })(FrameworkApplicationType = exports.FrameworkApplicationType || (exports.FrameworkApplicationType = {}));
package/dist/env.js CHANGED
@@ -28,7 +28,7 @@ const envSchema = new mongoose_1.Schema({
28
28
  is_system: {
29
29
  type: Boolean,
30
30
  default: false,
31
- required: false
31
+ required: false,
32
32
  },
33
33
  }, { timestamps: true });
34
34
  exports.default = (0, mongoose_1.model)("Env", envSchema);
@@ -0,0 +1,30 @@
1
+ /// <reference types="mongoose/types/aggregate" />
2
+ /// <reference types="mongoose/types/callback" />
3
+ /// <reference types="mongoose/types/collection" />
4
+ /// <reference types="mongoose/types/connection" />
5
+ /// <reference types="mongoose/types/cursor" />
6
+ /// <reference types="mongoose/types/document" />
7
+ /// <reference types="mongoose/types/error" />
8
+ /// <reference types="mongoose/types/expressions" />
9
+ /// <reference types="mongoose/types/helpers" />
10
+ /// <reference types="mongoose/types/middlewares" />
11
+ /// <reference types="mongoose/types/indexes" />
12
+ /// <reference types="mongoose/types/models" />
13
+ /// <reference types="mongoose/types/mongooseoptions" />
14
+ /// <reference types="mongoose/types/pipelinestage" />
15
+ /// <reference types="mongoose/types/populate" />
16
+ /// <reference types="mongoose/types/query" />
17
+ /// <reference types="mongoose/types/schemaoptions" />
18
+ /// <reference types="mongoose/types/schematypes" />
19
+ /// <reference types="mongoose/types/session" />
20
+ /// <reference types="mongoose/types/types" />
21
+ /// <reference types="mongoose/types/utility" />
22
+ /// <reference types="mongoose/types/validation" />
23
+ /// <reference types="mongoose/types/virtuals" />
24
+ /// <reference types="mongoose" />
25
+ /// <reference types="mongoose/types/inferschematype" />
26
+ import { IFramework } from "./types";
27
+ declare const _default: import("mongoose").Model<IFramework, {}, {}, {}, import("mongoose").Document<unknown, {}, IFramework> & IFramework & {
28
+ _id: import("mongoose").Types.ObjectId;
29
+ }, any>;
30
+ export default _default;
@@ -0,0 +1,79 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const mongoose_1 = require("mongoose");
4
+ const enum_1 = require("./enum");
5
+ const frameworkSchema = new mongoose_1.Schema({
6
+ name: {
7
+ type: String,
8
+ required: true,
9
+ },
10
+ slug: {
11
+ type: String,
12
+ required: true,
13
+ },
14
+ demo: {
15
+ type: String,
16
+ required: false,
17
+ },
18
+ logo: {
19
+ type: String,
20
+ required: true,
21
+ },
22
+ supported: {
23
+ type: Boolean,
24
+ required: false,
25
+ default: true
26
+ },
27
+ tagline: {
28
+ type: String,
29
+ required: false,
30
+ },
31
+ description: {
32
+ type: String,
33
+ required: false,
34
+ },
35
+ website: {
36
+ type: String,
37
+ required: true,
38
+ },
39
+ envPrefix: {
40
+ type: String,
41
+ required: false,
42
+ },
43
+ detector: {
44
+ type: String,
45
+ required: true,
46
+ },
47
+ file_detectors: {
48
+ type: Array,
49
+ required: false
50
+ },
51
+ type: {
52
+ type: String,
53
+ enum: Object.values(enum_1.FrameworkApplicationType),
54
+ required: true,
55
+ },
56
+ settings: {
57
+ installCommand: {
58
+ type: String,
59
+ required: false,
60
+ },
61
+ buildCommand: {
62
+ type: String,
63
+ required: true,
64
+ },
65
+ outputDirectory: {
66
+ type: String,
67
+ required: true,
68
+ },
69
+ manager: {
70
+ type: String,
71
+ required: false,
72
+ },
73
+ startCommand: {
74
+ type: String,
75
+ required: false,
76
+ },
77
+ },
78
+ }, { timestamps: true });
79
+ exports.default = (0, mongoose_1.model)("Framework", frameworkSchema, "frameworks");
package/dist/index.d.ts CHANGED
@@ -26,8 +26,9 @@ export { default as AutoScalingGroup } from "./auto-scaling";
26
26
  export { default as ComputeChange } from "./compute";
27
27
  export { default as Region } from "./region";
28
28
  export { default as Volume } from "./volume";
29
- export { IUser, IGit, IProject, IPreview, IProjectConnection, IFollowing, IIntegration, IEnv, IServer, IDomain, IToken, IMember, ITeam, IInstalledIntegration, ILog, ISubscription, ICard, IDns, IRole, IPermission, IMemberPermission, IWallet, IDbImage, IJob, ILicense, IPlanConfiguration, IAutoScalingGroup, IComputeChange, IRegion, IVolume, } from "./types";
30
- export { GIT_TYPE, INTEGRATION_TYPES, INTEGRATION_PROVIDERS, OAUTH_PERMISSIONS, ENVIRONMENT, SERVER_STATUS, ROLES, SUBSCRIPTION_PLAN_TYPE, PROJECT_STATUS, SUBSCRIPTION_STATUS, CARD_TYPES, DNS_TYPE, PERMISSION_TYPE, REQUEST_TYPE, ServiceType, DatabaseEngine, JobStatus, LicenseStatus, REGION_CONTINENT, BUILD_DISABLED_BY, } from "./enum";
29
+ export { default as Framework } from "./framework";
30
+ export { IUser, IGit, IProject, IPreview, IProjectConnection, IFollowing, IIntegration, IEnv, IServer, IDomain, IToken, IMember, ITeam, IInstalledIntegration, ILog, ISubscription, ICard, IDns, IRole, IPermission, IMemberPermission, IWallet, IDbImage, IJob, ILicense, IPlanConfiguration, IAutoScalingGroup, IComputeChange, IRegion, IVolume, IFramework, BrimbleFrameworkType } from "./types";
31
+ export { GIT_TYPE, INTEGRATION_TYPES, INTEGRATION_PROVIDERS, OAUTH_PERMISSIONS, ENVIRONMENT, SERVER_STATUS, ROLES, SUBSCRIPTION_PLAN_TYPE, PROJECT_STATUS, SUBSCRIPTION_STATUS, CARD_TYPES, DNS_TYPE, PERMISSION_TYPE, REQUEST_TYPE, ServiceType, DatabaseEngine, JobStatus, LicenseStatus, REGION_CONTINENT, BUILD_DISABLED_BY, FrameworkApplicationType } from "./enum";
31
32
  import mongoose from "mongoose";
32
33
  export declare const connectToMongo: (mongoUrl: string, config?: mongoose.ConnectOptions) => Promise<void>;
33
34
  export declare const db: mongoose.Connection;
package/dist/index.js CHANGED
@@ -12,8 +12,8 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
12
12
  return (mod && mod.__esModule) ? mod : { "default": mod };
13
13
  };
14
14
  Object.defineProperty(exports, "__esModule", { value: true });
15
- exports.connectToMongo = exports.BUILD_DISABLED_BY = exports.REGION_CONTINENT = exports.LicenseStatus = exports.JobStatus = exports.DatabaseEngine = exports.ServiceType = exports.REQUEST_TYPE = exports.PERMISSION_TYPE = exports.DNS_TYPE = exports.CARD_TYPES = exports.SUBSCRIPTION_STATUS = exports.PROJECT_STATUS = exports.SUBSCRIPTION_PLAN_TYPE = exports.ROLES = exports.SERVER_STATUS = exports.ENVIRONMENT = exports.OAUTH_PERMISSIONS = exports.INTEGRATION_PROVIDERS = exports.INTEGRATION_TYPES = exports.GIT_TYPE = exports.Volume = exports.Region = exports.ComputeChange = exports.AutoScalingGroup = exports.PlanConfiguration = exports.Liscense = exports.Job = exports.DbImage = exports.Wallet = exports.Server = exports.Card = exports.Subscription = exports.Log = exports.Role = exports.MemberPermission = exports.Permission = exports.Member = exports.Team = exports.Token = exports.Env = exports.Dns = exports.Domain = exports.Integration = exports.Following = exports.ProjectConnection = exports.Preview = exports.DeletedProject = exports.Project = exports.User = void 0;
16
- exports.closeMongo = exports.db = void 0;
15
+ exports.BUILD_DISABLED_BY = exports.REGION_CONTINENT = exports.LicenseStatus = exports.JobStatus = exports.DatabaseEngine = exports.ServiceType = exports.REQUEST_TYPE = exports.PERMISSION_TYPE = exports.DNS_TYPE = exports.CARD_TYPES = exports.SUBSCRIPTION_STATUS = exports.PROJECT_STATUS = exports.SUBSCRIPTION_PLAN_TYPE = exports.ROLES = exports.SERVER_STATUS = exports.ENVIRONMENT = exports.OAUTH_PERMISSIONS = exports.INTEGRATION_PROVIDERS = exports.INTEGRATION_TYPES = exports.GIT_TYPE = exports.Framework = exports.Volume = exports.Region = exports.ComputeChange = exports.AutoScalingGroup = exports.PlanConfiguration = exports.Liscense = exports.Job = exports.DbImage = exports.Wallet = exports.Server = exports.Card = exports.Subscription = exports.Log = exports.Role = exports.MemberPermission = exports.Permission = exports.Member = exports.Team = exports.Token = exports.Env = exports.Dns = exports.Domain = exports.Integration = exports.Following = exports.ProjectConnection = exports.Preview = exports.DeletedProject = exports.Project = exports.User = void 0;
16
+ exports.closeMongo = exports.db = exports.connectToMongo = exports.FrameworkApplicationType = void 0;
17
17
  var user_1 = require("./user");
18
18
  Object.defineProperty(exports, "User", { enumerable: true, get: function () { return __importDefault(user_1).default; } });
19
19
  var project_1 = require("./project");
@@ -71,6 +71,8 @@ var region_1 = require("./region");
71
71
  Object.defineProperty(exports, "Region", { enumerable: true, get: function () { return __importDefault(region_1).default; } });
72
72
  var volume_1 = require("./volume");
73
73
  Object.defineProperty(exports, "Volume", { enumerable: true, get: function () { return __importDefault(volume_1).default; } });
74
+ var framework_1 = require("./framework");
75
+ Object.defineProperty(exports, "Framework", { enumerable: true, get: function () { return __importDefault(framework_1).default; } });
74
76
  var enum_1 = require("./enum");
75
77
  Object.defineProperty(exports, "GIT_TYPE", { enumerable: true, get: function () { return enum_1.GIT_TYPE; } });
76
78
  Object.defineProperty(exports, "INTEGRATION_TYPES", { enumerable: true, get: function () { return enum_1.INTEGRATION_TYPES; } });
@@ -92,6 +94,7 @@ Object.defineProperty(exports, "JobStatus", { enumerable: true, get: function ()
92
94
  Object.defineProperty(exports, "LicenseStatus", { enumerable: true, get: function () { return enum_1.LicenseStatus; } });
93
95
  Object.defineProperty(exports, "REGION_CONTINENT", { enumerable: true, get: function () { return enum_1.REGION_CONTINENT; } });
94
96
  Object.defineProperty(exports, "BUILD_DISABLED_BY", { enumerable: true, get: function () { return enum_1.BUILD_DISABLED_BY; } });
97
+ Object.defineProperty(exports, "FrameworkApplicationType", { enumerable: true, get: function () { return enum_1.FrameworkApplicationType; } });
95
98
  const mongoose_1 = __importDefault(require("mongoose"));
96
99
  const utils_1 = require("@brimble/utils");
97
100
  const connectToMongo = (mongoUrl, config) => __awaiter(void 0, void 0, void 0, function* () {
@@ -11,9 +11,11 @@ const PlanConfigurationSchema = new mongoose_1.Schema({
11
11
  preview_comments: { type: Boolean, default: false },
12
12
  analytics: { type: Boolean, default: false },
13
13
  build_minutes: { type: Number, required: true },
14
+ pull_request_preview: { type: Boolean, default: false, required: false },
14
15
  log_retention: { type: Number, required: true },
15
16
  bandwidth: { type: Number, required: true },
16
17
  price: { type: Number, required: true },
18
+ autoscaling_enabled: { type: Boolean, default: false, required: false },
17
19
  region: { type: mongoose_1.Schema.Types.ObjectId, ref: "Region", required: false },
18
20
  multi_region: { type: Boolean, default: false },
19
21
  plan_type: {
@@ -27,5 +29,8 @@ const PlanConfigurationSchema = new mongoose_1.Schema({
27
29
  cpu: { type: Number, required: true },
28
30
  tokens: { type: Number, required: false },
29
31
  token_request: { type: Number, required: false },
32
+ view_metrics: { type: Boolean, required: false, default: false },
33
+ custom_domain: { type: Boolean, required: true, default: false },
34
+ can_deploy_all_applications: { type: Boolean, required: true, default: false },
30
35
  }, { timestamps: true });
31
36
  exports.default = (0, mongoose_1.model)("PlanConfigurations", PlanConfigurationSchema, "plan_configurations");
@@ -25,7 +25,7 @@ const projectSchema = new mongoose_1.Schema({
25
25
  },
26
26
  preStartCommand: {
27
27
  type: String,
28
- required: false
28
+ required: false,
29
29
  },
30
30
  buildCacheEnabled: {
31
31
  type: Boolean,
@@ -112,7 +112,7 @@ const projectSchema = new mongoose_1.Schema({
112
112
  },
113
113
  hasUpdates: {
114
114
  type: Boolean,
115
- default: false
115
+ default: false,
116
116
  },
117
117
  lastProcessed: Number,
118
118
  tracking_token: String,
package/dist/region.js CHANGED
@@ -11,5 +11,6 @@ const regionSchema = new mongoose_1.Schema({
11
11
  is_paid: { type: Boolean, default: false },
12
12
  provider: { type: String, required: true },
13
13
  provider_identifier: { type: String, required: true },
14
+ storage_pricing_factor: { type: Number, required: true, default: 0.25 },
14
15
  });
15
16
  exports.default = (0, mongoose_1.model)("Region", regionSchema, "regions");
package/dist/server.js CHANGED
@@ -54,10 +54,30 @@ const serverSchema = new mongoose_1.Schema({
54
54
  required: true,
55
55
  },
56
56
  tag: String,
57
+ plugin_id: {
58
+ type: String,
59
+ required: false,
60
+ },
57
61
  firewall_id: {
58
62
  required: false,
59
63
  type: String,
60
64
  },
65
+ provider: {
66
+ type: String,
67
+ required: true,
68
+ },
69
+ provider_location: {
70
+ type: String,
71
+ required: false,
72
+ },
73
+ provider_identifier: {
74
+ type: String,
75
+ required: false,
76
+ },
77
+ topology_path: {
78
+ type: String,
79
+ required: false,
80
+ },
61
81
  specifications: {
62
82
  type: Object,
63
83
  default: {},
@@ -55,7 +55,7 @@ const subscriptionSchema = new mongoose_1.Schema({
55
55
  },
56
56
  disabled_at: {
57
57
  required: false,
58
- type: Date
58
+ type: Date,
59
59
  },
60
60
  trigger_created: {
61
61
  type: Boolean,
package/dist/token.js CHANGED
@@ -30,7 +30,7 @@ const tokenSchema = new mongoose_1.Schema({
30
30
  tokens_used: {
31
31
  type: Number,
32
32
  required: true,
33
- default: 0
33
+ default: 0,
34
34
  },
35
35
  }, { timestamps: true });
36
36
  exports.default = (0, mongoose_1.model)("Token", tokenSchema, "api_tokens");
@@ -34,4 +34,5 @@ export interface IComputeChange {
34
34
  };
35
35
  project_deleted_at?: Date;
36
36
  billed: boolean;
37
+ storage_pricing_factor: number;
37
38
  }
@@ -4,13 +4,17 @@ export interface IDbImage extends Document {
4
4
  name: DatabaseEngine;
5
5
  image_url: string;
6
6
  version: string;
7
- envs: string[];
7
+ envs: Array<{
8
+ value: string;
9
+ type: string;
10
+ }>;
8
11
  is_available: boolean;
9
12
  is_default: boolean;
10
13
  image: string;
11
14
  has_port: boolean;
12
15
  port: number;
13
16
  volumePath: string;
17
+ protocol: string;
14
18
  recommendations?: Array<{
15
19
  cpu: string;
16
20
  memory: string;
@@ -8,8 +8,10 @@ export interface IDomain extends Document {
8
8
  team_id?: ITeam;
9
9
  primary: boolean;
10
10
  preview: IPreview;
11
+ provider: string;
11
12
  subscription: ISubscription;
12
13
  auto_renewal: boolean;
14
+ renewal_duration: number;
13
15
  is_discounted: boolean;
14
16
  purchased: boolean;
15
17
  privacy_enabled: boolean;
@@ -25,4 +27,6 @@ export interface IDomain extends Document {
25
27
  url: string;
26
28
  status?: 301 | 302 | 307 | 308;
27
29
  };
30
+ createdAt: Date;
31
+ updatedAt: Date;
28
32
  }
@@ -0,0 +1,38 @@
1
+ import { Document } from "mongoose";
2
+ import { FrameworkApplicationType } from "../enum";
3
+ export interface IFramework extends Document {
4
+ name: string;
5
+ slug: string;
6
+ demo?: string;
7
+ logo: string;
8
+ tagline?: string;
9
+ supported: boolean;
10
+ description?: string;
11
+ website: string;
12
+ envPrefix?: string;
13
+ detector: string;
14
+ file_detectors: string[];
15
+ type: FrameworkApplicationType;
16
+ settings: {
17
+ installCommand?: string;
18
+ startCommand?: string;
19
+ buildCommand: string;
20
+ outputDirectory: string;
21
+ manager?: string;
22
+ };
23
+ createdAt?: Date;
24
+ updatedAt?: Date;
25
+ }
26
+ export type BrimbleFrameworkType = {
27
+ name: string;
28
+ slug: string;
29
+ logo: string;
30
+ installCommand: string;
31
+ buildCommand: string;
32
+ startCommand: string;
33
+ outputDirectory: string;
34
+ manager: string | null;
35
+ envPrefix: string;
36
+ supported: boolean;
37
+ type: string;
38
+ };
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
@@ -28,3 +28,4 @@ export { IAutoScalingGroup } from "./auto-scaling-group";
28
28
  export { IComputeChange } from "./compute";
29
29
  export { IRegion } from "./region";
30
30
  export { IVolume } from "./volume";
31
+ export { IFramework, BrimbleFrameworkType } from "./framework";
@@ -6,6 +6,7 @@ export interface IPlanConfiguration extends Document {
6
6
  price: number;
7
7
  region: IRegion;
8
8
  slack_support: boolean;
9
+ autoscaling_enabled: boolean;
9
10
  concurrent_builds: number;
10
11
  project_limit: number;
11
12
  deploy_private_organization: boolean;
@@ -15,11 +16,15 @@ export interface IPlanConfiguration extends Document {
15
16
  log_retention: number;
16
17
  multi_region: boolean;
17
18
  bandwidth: number;
19
+ pull_request_preview: boolean;
18
20
  plan_type: SUBSCRIPTION_PLAN_TYPE;
19
21
  memory: number;
20
22
  build_timeout: number;
21
23
  storage: number;
22
24
  cpu: number;
23
25
  tokens: number;
26
+ view_metrics: boolean;
24
27
  token_request: number;
28
+ custom_domain: boolean;
29
+ can_deploy_all_applications: boolean;
25
30
  }
@@ -8,4 +8,5 @@ export interface IRegion extends Document {
8
8
  is_paid: boolean;
9
9
  provider: string;
10
10
  provider_identifier: string;
11
+ storage_pricing_factor: number;
11
12
  }
@@ -21,5 +21,10 @@ export interface IServer extends Document {
21
21
  is_custom_provision: boolean;
22
22
  firewall_id?: string;
23
23
  specifications: Record<any, any>;
24
+ plugin_id?: string;
25
+ provider: string;
26
+ provider_location?: string;
27
+ provider_identifier?: string;
28
+ topology_path?: string;
24
29
  meta: Record<any, any>;
25
30
  }
package/domain/index.ts CHANGED
@@ -26,6 +26,15 @@ const domainSchema = new Schema(
26
26
  type: Boolean,
27
27
  default: false,
28
28
  },
29
+ provider: {
30
+ type: String,
31
+ required: true,
32
+ },
33
+ renewal_duration: {
34
+ type: Number,
35
+ required: false,
36
+ default: 1,
37
+ },
29
38
  is_discounted: {
30
39
  type: Boolean,
31
40
  default: false,
package/enum/index.ts CHANGED
@@ -3,12 +3,12 @@ export enum GIT_TYPE {
3
3
  GITLAB = "GITLAB",
4
4
  BITBUCKET = "BITBUCKET",
5
5
  DOCKER = "DOCKER",
6
- HUGGING_FACE = "HUGGINGFACE"
6
+ HUGGING_FACE = "HUGGINGFACE",
7
7
  }
8
8
 
9
9
  export enum BUILD_DISABLED_BY {
10
10
  System = "system",
11
- User = "user"
11
+ User = "user",
12
12
  }
13
13
 
14
14
  export enum REQUEST_TYPE {
@@ -60,7 +60,7 @@ export enum PROJECT_STATUS {
60
60
  PENDING = "PENDING",
61
61
  CANCELLED = "CANCELLED",
62
62
  DEGRADED = "DEGRADED",
63
- PAYMENT = "PAYMENT DUE"
63
+ PAYMENT = "PAYMENT DUE",
64
64
  }
65
65
 
66
66
  export enum SUBSCRIPTION_STATUS {
@@ -73,6 +73,7 @@ export enum SUBSCRIPTION_PLAN_TYPE {
73
73
  DeveloperPlan = "DEVELOPER_PLAN",
74
74
  TeamPlan = "TEAM_PLAN",
75
75
  DomainPlan = "DOMAIN_PLAN",
76
+ HackerPlan = "HACKER_PLAN",
76
77
  LiscensePlan = "LISCENSE_PLAN",
77
78
  }
78
79
 
@@ -121,6 +122,7 @@ export enum REGION_CONTINENT {
121
122
  export enum ServiceType {
122
123
  Database = "database",
123
124
  WebService = "web-service",
125
+ Static = "static",
124
126
  Mcp = "mcp",
125
127
  Liscense = "liscense",
126
128
  Worker = "worker",
@@ -163,3 +165,10 @@ export enum SCALING_METRIC {
163
165
  ResponseTime = "RESPONSE_TIME",
164
166
  CustomMetric = "CUSTOM_METRIC",
165
167
  }
168
+
169
+ export enum FrameworkApplicationType {
170
+ Spa = 'spa',
171
+ Ssr = 'ssr',
172
+ Static = 'static',
173
+ Backend = 'backend'
174
+ }
package/env.ts CHANGED
@@ -29,7 +29,7 @@ const envSchema = new Schema(
29
29
  is_system: {
30
30
  type: Boolean,
31
31
  default: false,
32
- required: false
32
+ required: false,
33
33
  },
34
34
  },
35
35
  { timestamps: true },
package/framework.ts ADDED
@@ -0,0 +1,83 @@
1
+ import { model, Schema } from "mongoose";
2
+ import { IFramework } from "./types";
3
+ import { FrameworkApplicationType } from "./enum";
4
+
5
+ const frameworkSchema: Schema = new Schema(
6
+ {
7
+ name: {
8
+ type: String,
9
+ required: true,
10
+ },
11
+ slug: {
12
+ type: String,
13
+ required: true,
14
+ },
15
+ demo: {
16
+ type: String,
17
+ required: false,
18
+ },
19
+ logo: {
20
+ type: String,
21
+ required: true,
22
+ },
23
+ supported: {
24
+ type: Boolean,
25
+ required: false,
26
+ default: true
27
+ },
28
+ tagline: {
29
+ type: String,
30
+ required: false,
31
+ },
32
+ description: {
33
+ type: String,
34
+ required: false,
35
+ },
36
+ website: {
37
+ type: String,
38
+ required: true,
39
+ },
40
+ envPrefix: {
41
+ type: String,
42
+ required: false,
43
+ },
44
+ detector: {
45
+ type: String,
46
+ required: true,
47
+ },
48
+ file_detectors: {
49
+ type: Array,
50
+ required: false
51
+ },
52
+ type: {
53
+ type: String,
54
+ enum: Object.values(FrameworkApplicationType),
55
+ required: true,
56
+ },
57
+ settings: {
58
+ installCommand: {
59
+ type: String,
60
+ required: false,
61
+ },
62
+ buildCommand: {
63
+ type: String,
64
+ required: true,
65
+ },
66
+ outputDirectory: {
67
+ type: String,
68
+ required: true,
69
+ },
70
+ manager: {
71
+ type: String,
72
+ required: false,
73
+ },
74
+ startCommand: {
75
+ type: String,
76
+ required: false,
77
+ },
78
+ },
79
+ },
80
+ { timestamps: true },
81
+ );
82
+
83
+ export default model<IFramework>("Framework", frameworkSchema, "frameworks");
package/index.ts CHANGED
@@ -26,6 +26,7 @@ export { default as AutoScalingGroup } from "./auto-scaling";
26
26
  export { default as ComputeChange } from "./compute";
27
27
  export { default as Region } from "./region";
28
28
  export { default as Volume } from "./volume";
29
+ export { default as Framework } from "./framework";
29
30
 
30
31
  export {
31
32
  IUser,
@@ -58,6 +59,8 @@ export {
58
59
  IComputeChange,
59
60
  IRegion,
60
61
  IVolume,
62
+ IFramework,
63
+ BrimbleFrameworkType
61
64
  } from "./types";
62
65
  export {
63
66
  GIT_TYPE,
@@ -80,6 +83,7 @@ export {
80
83
  LicenseStatus,
81
84
  REGION_CONTINENT,
82
85
  BUILD_DISABLED_BY,
86
+ FrameworkApplicationType
83
87
  } from "./enum";
84
88
 
85
89
  import mongoose from "mongoose";
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@brimble/models",
3
- "version": "3.1.9",
3
+ "version": "3.2.0",
4
4
  "description": "Brimble models",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
@@ -12,9 +12,11 @@ const PlanConfigurationSchema = new Schema<IPlanConfiguration>(
12
12
  preview_comments: { type: Boolean, default: false },
13
13
  analytics: { type: Boolean, default: false },
14
14
  build_minutes: { type: Number, required: true },
15
+ pull_request_preview: { type: Boolean, default: false, required: false },
15
16
  log_retention: { type: Number, required: true },
16
17
  bandwidth: { type: Number, required: true },
17
18
  price: { type: Number, required: true },
19
+ autoscaling_enabled: { type: Boolean, default: false, required: false },
18
20
  region: { type: Schema.Types.ObjectId, ref: "Region", required: false },
19
21
  multi_region: { type: Boolean, default: false },
20
22
  plan_type: {
@@ -28,6 +30,9 @@ const PlanConfigurationSchema = new Schema<IPlanConfiguration>(
28
30
  cpu: { type: Number, required: true },
29
31
  tokens: { type: Number, required: false },
30
32
  token_request: { type: Number, required: false },
33
+ view_metrics: { type: Boolean, required: false, default: false },
34
+ custom_domain: { type: Boolean, required: true, default: false },
35
+ can_deploy_all_applications: { type: Boolean, required: true, default: false },
31
36
  },
32
37
  { timestamps: true },
33
38
  );
package/project/index.ts CHANGED
@@ -25,7 +25,7 @@ const projectSchema = new Schema(
25
25
  },
26
26
  preStartCommand: {
27
27
  type: String,
28
- required: false
28
+ required: false,
29
29
  },
30
30
  buildCacheEnabled: {
31
31
  type: Boolean,
@@ -112,7 +112,7 @@ const projectSchema = new Schema(
112
112
  },
113
113
  hasUpdates: {
114
114
  type: Boolean,
115
- default: false
115
+ default: false,
116
116
  },
117
117
  lastProcessed: Number,
118
118
  tracking_token: String,
package/region.ts CHANGED
@@ -11,6 +11,7 @@ const regionSchema = new Schema({
11
11
  is_paid: { type: Boolean, default: false },
12
12
  provider: { type: String, required: true },
13
13
  provider_identifier: { type: String, required: true },
14
+ storage_pricing_factor: { type: Number, required: true, default: 0.25 },
14
15
  });
15
16
 
16
17
  export default model<IRegion>("Region", regionSchema, "regions");
package/server.ts CHANGED
@@ -55,10 +55,30 @@ const serverSchema = new Schema(
55
55
  required: true,
56
56
  },
57
57
  tag: String,
58
+ plugin_id: {
59
+ type: String,
60
+ required: false,
61
+ },
58
62
  firewall_id: {
59
63
  required: false,
60
64
  type: String,
61
65
  },
66
+ provider: {
67
+ type: String,
68
+ required: true,
69
+ },
70
+ provider_location: {
71
+ type: String,
72
+ required: false,
73
+ },
74
+ provider_identifier: {
75
+ type: String,
76
+ required: false,
77
+ },
78
+ topology_path: {
79
+ type: String,
80
+ required: false,
81
+ },
62
82
  specifications: {
63
83
  type: Object,
64
84
  default: {},
package/subscription.ts CHANGED
@@ -56,7 +56,7 @@ const subscriptionSchema: Schema = new Schema(
56
56
  },
57
57
  disabled_at: {
58
58
  required: false,
59
- type: Date
59
+ type: Date,
60
60
  },
61
61
  trigger_created: {
62
62
  type: Boolean,
package/token.ts CHANGED
@@ -31,7 +31,7 @@ const tokenSchema = new Schema<IToken>(
31
31
  tokens_used: {
32
32
  type: Number,
33
33
  required: true,
34
- default: 0
34
+ default: 0,
35
35
  },
36
36
  },
37
37
  { timestamps: true },
package/types/compute.ts CHANGED
@@ -35,4 +35,5 @@ export interface IComputeChange {
35
35
  };
36
36
  project_deleted_at?: Date;
37
37
  billed: boolean;
38
+ storage_pricing_factor: number;
38
39
  }
package/types/db-image.ts CHANGED
@@ -5,12 +5,13 @@ export interface IDbImage extends Document {
5
5
  name: DatabaseEngine;
6
6
  image_url: string;
7
7
  version: string;
8
- envs: string[];
8
+ envs: Array<{ value: string; type: string }>;
9
9
  is_available: boolean;
10
10
  is_default: boolean;
11
11
  image: string;
12
12
  has_port: boolean;
13
13
  port: number;
14
14
  volumePath: string;
15
- recommendations?: Array<{ cpu: string; memory: string; storage: string; }>
15
+ protocol: string;
16
+ recommendations?: Array<{ cpu: string; memory: string; storage: string }>;
16
17
  }
@@ -9,8 +9,10 @@ export interface IDomain extends Document {
9
9
  team_id?: ITeam;
10
10
  primary: boolean;
11
11
  preview: IPreview;
12
+ provider: string;
12
13
  subscription: ISubscription;
13
14
  auto_renewal: boolean;
15
+ renewal_duration: number;
14
16
  is_discounted: boolean;
15
17
  purchased: boolean;
16
18
  privacy_enabled: boolean;
@@ -26,4 +28,6 @@ export interface IDomain extends Document {
26
28
  url: string;
27
29
  status?: 301 | 302 | 307 | 308;
28
30
  };
31
+ createdAt: Date;
32
+ updatedAt: Date;
29
33
  }
@@ -0,0 +1,40 @@
1
+ import { Document } from "mongoose";
2
+ import { FrameworkApplicationType } from "../enum";
3
+
4
+ export interface IFramework extends Document {
5
+ name: string;
6
+ slug: string;
7
+ demo?: string;
8
+ logo: string;
9
+ tagline?: string;
10
+ supported: boolean;
11
+ description?: string;
12
+ website: string;
13
+ envPrefix?: string;
14
+ detector: string;
15
+ file_detectors: string[];
16
+ type: FrameworkApplicationType;
17
+ settings: {
18
+ installCommand?: string;
19
+ startCommand?: string;
20
+ buildCommand: string;
21
+ outputDirectory: string;
22
+ manager?: string;
23
+ };
24
+ createdAt?: Date;
25
+ updatedAt?: Date;
26
+ }
27
+
28
+ export type BrimbleFrameworkType = {
29
+ name: string;
30
+ slug: string;
31
+ logo: string;
32
+ installCommand: string;
33
+ buildCommand: string;
34
+ startCommand: string;
35
+ outputDirectory: string;
36
+ manager: string | null;
37
+ envPrefix: string;
38
+ supported: boolean;
39
+ type: string;
40
+ };
package/types/index.ts CHANGED
@@ -28,3 +28,4 @@ export { IAutoScalingGroup } from "./auto-scaling-group";
28
28
  export { IComputeChange } from "./compute";
29
29
  export { IRegion } from "./region";
30
30
  export { IVolume } from "./volume";
31
+ export { IFramework, BrimbleFrameworkType } from "./framework";
@@ -7,6 +7,7 @@ export interface IPlanConfiguration extends Document {
7
7
  price: number;
8
8
  region: IRegion;
9
9
  slack_support: boolean;
10
+ autoscaling_enabled: boolean;
10
11
  concurrent_builds: number;
11
12
  project_limit: number;
12
13
  deploy_private_organization: boolean;
@@ -16,11 +17,15 @@ export interface IPlanConfiguration extends Document {
16
17
  log_retention: number;
17
18
  multi_region: boolean;
18
19
  bandwidth: number;
20
+ pull_request_preview: boolean;
19
21
  plan_type: SUBSCRIPTION_PLAN_TYPE;
20
22
  memory: number;
21
23
  build_timeout: number;
22
24
  storage: number;
23
25
  cpu: number;
24
26
  tokens: number;
27
+ view_metrics: boolean;
25
28
  token_request: number;
29
+ custom_domain: boolean;
30
+ can_deploy_all_applications: boolean;
26
31
  }
package/types/region.ts CHANGED
@@ -9,4 +9,5 @@ export interface IRegion extends Document {
9
9
  is_paid: boolean;
10
10
  provider: string;
11
11
  provider_identifier: string;
12
+ storage_pricing_factor: number;
12
13
  }
package/types/server.ts CHANGED
@@ -41,5 +41,15 @@ export interface IServer extends Document {
41
41
 
42
42
  specifications: Record<any, any>;
43
43
 
44
+ plugin_id?: string;
45
+
46
+ provider: string;
47
+
48
+ provider_location?: string;
49
+
50
+ provider_identifier?: string;
51
+
52
+ topology_path?: string;
53
+
44
54
  meta: Record<any, any>;
45
55
  }