@abtnode/models 1.16.8-next-d1e52353

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 (65) hide show
  1. package/README.md +1 -0
  2. package/lib/index.d.ts +5 -0
  3. package/lib/index.js +21 -0
  4. package/lib/migrate.d.ts +13 -0
  5. package/lib/migrate.js +127 -0
  6. package/lib/migrations/blocklet/20230422000000-genesis.js +21 -0
  7. package/lib/migrations/certificate-manager/20230422000000-genesis.js +19 -0
  8. package/lib/migrations/connect/20230422000000-genesis.js +13 -0
  9. package/lib/migrations/server/20230422000000-genesis.js +45 -0
  10. package/lib/migrations/service/20230422000000-genesis.js +13 -0
  11. package/lib/models/access-key.d.ts +6 -0
  12. package/lib/models/access-key.js +56 -0
  13. package/lib/models/account.d.ts +11 -0
  14. package/lib/models/account.js +56 -0
  15. package/lib/models/audit-log.d.ts +7 -0
  16. package/lib/models/audit-log.js +79 -0
  17. package/lib/models/backup.d.ts +6 -0
  18. package/lib/models/backup.js +72 -0
  19. package/lib/models/blocklet-extra.d.ts +7 -0
  20. package/lib/models/blocklet-extra.js +63 -0
  21. package/lib/models/blocklet.d.ts +6 -0
  22. package/lib/models/blocklet.js +120 -0
  23. package/lib/models/cache.d.ts +8 -0
  24. package/lib/models/cache.js +44 -0
  25. package/lib/models/certificate.d.ts +7 -0
  26. package/lib/models/certificate.js +70 -0
  27. package/lib/models/connected-account.d.ts +8 -0
  28. package/lib/models/connected-account.js +59 -0
  29. package/lib/models/connection.d.ts +23 -0
  30. package/lib/models/connection.js +89 -0
  31. package/lib/models/http-challenge.d.ts +9 -0
  32. package/lib/models/http-challenge.js +49 -0
  33. package/lib/models/index.d.ts +63 -0
  34. package/lib/models/index.js +149 -0
  35. package/lib/models/job.d.ts +13 -0
  36. package/lib/models/job.js +62 -0
  37. package/lib/models/message.d.ts +9 -0
  38. package/lib/models/message.js +54 -0
  39. package/lib/models/migration.d.ts +6 -0
  40. package/lib/models/migration.js +53 -0
  41. package/lib/models/notification.d.ts +4 -0
  42. package/lib/models/notification.js +77 -0
  43. package/lib/models/passport.d.ts +8 -0
  44. package/lib/models/passport.js +89 -0
  45. package/lib/models/rbac.d.ts +13 -0
  46. package/lib/models/rbac.js +65 -0
  47. package/lib/models/server.d.ts +10 -0
  48. package/lib/models/server.js +130 -0
  49. package/lib/models/session.d.ts +10 -0
  50. package/lib/models/session.js +54 -0
  51. package/lib/models/site.d.ts +8 -0
  52. package/lib/models/site.js +62 -0
  53. package/lib/models/user.d.ts +6 -0
  54. package/lib/models/user.js +105 -0
  55. package/lib/models/webhook.d.ts +6 -0
  56. package/lib/models/webhook.js +47 -0
  57. package/lib/states/base.d.ts +40 -0
  58. package/lib/states/base.js +144 -0
  59. package/lib/states/factory.d.ts +1 -0
  60. package/lib/states/factory.js +21 -0
  61. package/lib/types.d.ts +49 -0
  62. package/lib/types.js +2 -0
  63. package/lib/util.d.ts +6 -0
  64. package/lib/util.js +108 -0
  65. package/package.json +58 -0
@@ -0,0 +1,149 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ exports.setupModels = exports.getConnectModels = exports.getServerModels = exports.getBlockletModels = exports.getCertificateManagerModels = exports.getServiceModels = exports.createSequelize = void 0;
18
+ const sequelize_1 = require("sequelize");
19
+ const message_1 = require("./message");
20
+ const account_1 = require("./account");
21
+ const certificate_1 = require("./certificate");
22
+ const http_challenge_1 = require("./http-challenge");
23
+ const user_1 = require("./user");
24
+ const passport_1 = require("./passport");
25
+ const connected_account_1 = require("./connected-account");
26
+ const session_1 = require("./session");
27
+ const rbac_1 = require("./rbac");
28
+ const access_key_1 = require("./access-key");
29
+ const audit_log_1 = require("./audit-log");
30
+ const blocklet_extra_1 = require("./blocklet-extra");
31
+ const blocklet_1 = require("./blocklet");
32
+ const cache_1 = require("./cache");
33
+ const job_1 = require("./job");
34
+ const migration_1 = require("./migration");
35
+ const notification_1 = require("./notification");
36
+ const server_1 = require("./server");
37
+ const site_1 = require("./site");
38
+ const webhook_1 = require("./webhook");
39
+ const connection_1 = require("./connection");
40
+ const backup_1 = require("./backup");
41
+ __exportStar(require("./message"), exports);
42
+ __exportStar(require("./account"), exports);
43
+ __exportStar(require("./certificate"), exports);
44
+ __exportStar(require("./http-challenge"), exports);
45
+ __exportStar(require("./user"), exports);
46
+ __exportStar(require("./passport"), exports);
47
+ __exportStar(require("./connected-account"), exports);
48
+ __exportStar(require("./session"), exports);
49
+ __exportStar(require("./rbac"), exports);
50
+ __exportStar(require("./access-key"), exports);
51
+ __exportStar(require("./audit-log"), exports);
52
+ __exportStar(require("./blocklet-extra"), exports);
53
+ __exportStar(require("./blocklet"), exports);
54
+ __exportStar(require("./cache"), exports);
55
+ __exportStar(require("./job"), exports);
56
+ __exportStar(require("./migration"), exports);
57
+ __exportStar(require("./notification"), exports);
58
+ __exportStar(require("./server"), exports);
59
+ __exportStar(require("./site"), exports);
60
+ __exportStar(require("./webhook"), exports);
61
+ __exportStar(require("./connection"), exports);
62
+ __exportStar(require("./backup"), exports);
63
+ const instances = new Map();
64
+ function createSequelize(dbPath, config = {
65
+ logging: !!process.env.SEQUELIZE_LOGGING || ['production', 'test'].includes(process.env.NODE_ENV) === false,
66
+ }) {
67
+ if (instances.has(dbPath)) {
68
+ return instances.get(dbPath);
69
+ }
70
+ let sequelize;
71
+ if (dbPath.endsWith(':memory:')) {
72
+ sequelize = new sequelize_1.Sequelize('sqlite::memory:', config);
73
+ }
74
+ else {
75
+ sequelize = new sequelize_1.Sequelize({ dialect: 'sqlite', storage: dbPath, ...config });
76
+ }
77
+ instances.set(dbPath, sequelize);
78
+ return instances.get(dbPath);
79
+ }
80
+ exports.createSequelize = createSequelize;
81
+ function getServiceModels() {
82
+ const models = {
83
+ Message: (0, message_1.createMessageModel)(),
84
+ };
85
+ return models;
86
+ }
87
+ exports.getServiceModels = getServiceModels;
88
+ function getCertificateManagerModels() {
89
+ const models = {
90
+ Account: (0, account_1.createAccountModel)(),
91
+ Certificate: (0, certificate_1.createCertificateModel)(),
92
+ HttpChallenge: (0, http_challenge_1.createHttpChallengeModel)(),
93
+ Job: (0, job_1.createJobModel)(),
94
+ };
95
+ return models;
96
+ }
97
+ exports.getCertificateManagerModels = getCertificateManagerModels;
98
+ function getBlockletModels() {
99
+ const models = {
100
+ User: (0, user_1.createUserModel)(),
101
+ Passport: (0, passport_1.createPassportModel)(),
102
+ ConnectedAccount: (0, connected_account_1.createConnectedAccountModel)(),
103
+ Session: (0, session_1.createSessionModel)(),
104
+ Rbac: (0, rbac_1.createRbacModel)(),
105
+ };
106
+ return models;
107
+ }
108
+ exports.getBlockletModels = getBlockletModels;
109
+ function getServerModels() {
110
+ const models = {
111
+ AccessKey: (0, access_key_1.createAccessKeyModel)(),
112
+ AuditLog: (0, audit_log_1.createAuditLogModel)(),
113
+ BlockletExtra: (0, blocklet_extra_1.createBlockletExtraModel)(),
114
+ Blocklet: (0, blocklet_1.createBlockletModel)(),
115
+ Cache: (0, cache_1.createCacheModel)(),
116
+ Job: (0, job_1.createJobModel)(),
117
+ Migration: (0, migration_1.createMigrationModel)(),
118
+ Notification: (0, notification_1.createNotificationModel)(),
119
+ Rbac: (0, rbac_1.createRbacModel)(),
120
+ Server: (0, server_1.createServerModel)(),
121
+ Session: (0, session_1.createSessionModel)(),
122
+ Site: (0, site_1.createSiteModel)(),
123
+ User: (0, user_1.createUserModel)(),
124
+ Passport: (0, passport_1.createPassportModel)(),
125
+ ConnectedAccount: (0, connected_account_1.createConnectedAccountModel)(),
126
+ WebHook: (0, webhook_1.createWebHookModel)(),
127
+ Backup: (0, backup_1.createBackupModel)(),
128
+ };
129
+ return models;
130
+ }
131
+ exports.getServerModels = getServerModels;
132
+ function getConnectModels() {
133
+ const models = {
134
+ Connection: (0, connection_1.createConnectionModel)(),
135
+ };
136
+ return models;
137
+ }
138
+ exports.getConnectModels = getConnectModels;
139
+ function setupModels(models, sequelize) {
140
+ Object.keys(models).forEach((x) => {
141
+ models[x].initialize(sequelize);
142
+ });
143
+ Object.keys(models).forEach((x) => {
144
+ if (typeof models[x].associate === 'function') {
145
+ models[x].associate(models);
146
+ }
147
+ });
148
+ }
149
+ exports.setupModels = setupModels;
@@ -0,0 +1,13 @@
1
+ import { DynamicModel } from '../types';
2
+ export type JobState = {
3
+ id: string;
4
+ queue: string;
5
+ job: Record<string, any>;
6
+ retryCount: number;
7
+ willRunAt: number;
8
+ delay: number;
9
+ cancelled: boolean;
10
+ createdAt: Date;
11
+ updatedAt: Date;
12
+ };
13
+ export declare function createJobModel(): DynamicModel<JobState>;
@@ -0,0 +1,62 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.createJobModel = void 0;
4
+ // Storage for multi-queue job storage
5
+ const sequelize_1 = require("sequelize");
6
+ const util_1 = require("../util");
7
+ function createJobModel() {
8
+ var _a;
9
+ return _a = class Job extends sequelize_1.Model {
10
+ static initialize(sequelize) {
11
+ this.init({
12
+ ...this.GENESIS_ATTRIBUTES,
13
+ }, {
14
+ sequelize,
15
+ indexes: [{ fields: ['queue', 'id'] }],
16
+ modelName: 'Job',
17
+ tableName: 'jobs',
18
+ timestamps: true,
19
+ });
20
+ }
21
+ },
22
+ _a.GENESIS_ATTRIBUTES = {
23
+ id: {
24
+ type: sequelize_1.DataTypes.STRING(40),
25
+ primaryKey: true,
26
+ defaultValue: util_1.generateId,
27
+ },
28
+ queue: {
29
+ type: sequelize_1.DataTypes.STRING(32),
30
+ allowNull: false,
31
+ },
32
+ job: {
33
+ type: sequelize_1.DataTypes.JSON,
34
+ allowNull: false,
35
+ },
36
+ retryCount: {
37
+ type: sequelize_1.DataTypes.INTEGER,
38
+ },
39
+ delay: {
40
+ type: sequelize_1.DataTypes.INTEGER,
41
+ },
42
+ willRunAt: {
43
+ type: sequelize_1.DataTypes.INTEGER,
44
+ },
45
+ cancelled: {
46
+ type: sequelize_1.DataTypes.BOOLEAN,
47
+ defaultValue: false,
48
+ },
49
+ createdAt: {
50
+ type: sequelize_1.DataTypes.DATE,
51
+ defaultValue: sequelize_1.DataTypes.NOW,
52
+ index: true,
53
+ },
54
+ updatedAt: {
55
+ type: sequelize_1.DataTypes.DATE,
56
+ defaultValue: sequelize_1.DataTypes.NOW,
57
+ index: true,
58
+ },
59
+ },
60
+ _a;
61
+ }
62
+ exports.createJobModel = createJobModel;
@@ -0,0 +1,9 @@
1
+ import { DynamicModel } from '../types';
2
+ export type MessageState = {
3
+ id: string;
4
+ event: string;
5
+ data: object;
6
+ createdAt: Date;
7
+ updatedAt: Date;
8
+ };
9
+ export declare function createMessageModel(): DynamicModel<MessageState>;
@@ -0,0 +1,54 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.createMessageModel = void 0;
4
+ // Storage for event hub messages
5
+ const sequelize_1 = require("sequelize");
6
+ const util_1 = require("../util");
7
+ function createMessageModel() {
8
+ var _a;
9
+ return _a = class Message extends sequelize_1.Model {
10
+ static initialize(sequelize) {
11
+ this.init({
12
+ ...this.GENESIS_ATTRIBUTES,
13
+ }, {
14
+ sequelize,
15
+ modelName: 'Message',
16
+ indexes: [{ fields: ['did', 'id'] }],
17
+ tableName: 'messages',
18
+ timestamps: true,
19
+ });
20
+ }
21
+ },
22
+ _a.GENESIS_ATTRIBUTES = {
23
+ id: {
24
+ type: sequelize_1.DataTypes.STRING(40),
25
+ primaryKey: true,
26
+ defaultValue: util_1.generateId,
27
+ },
28
+ did: {
29
+ type: sequelize_1.DataTypes.STRING(40),
30
+ allowNull: false,
31
+ },
32
+ event: {
33
+ type: sequelize_1.DataTypes.STRING(40),
34
+ allowNull: false,
35
+ index: true,
36
+ },
37
+ data: {
38
+ type: sequelize_1.DataTypes.JSON,
39
+ allowNull: false,
40
+ },
41
+ createdAt: {
42
+ type: sequelize_1.DataTypes.DATE,
43
+ defaultValue: sequelize_1.DataTypes.NOW,
44
+ index: true,
45
+ },
46
+ updatedAt: {
47
+ type: sequelize_1.DataTypes.DATE,
48
+ defaultValue: sequelize_1.DataTypes.NOW,
49
+ index: true,
50
+ },
51
+ },
52
+ _a;
53
+ }
54
+ exports.createMessageModel = createMessageModel;
@@ -0,0 +1,6 @@
1
+ import { TMigration } from '@abtnode/types';
2
+ import { DynamicModel } from '../types';
3
+ export type MigrationState = TMigration & {
4
+ id: string;
5
+ };
6
+ export declare function createMigrationModel(): DynamicModel<MigrationState>;
@@ -0,0 +1,53 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.createMigrationModel = void 0;
4
+ const sequelize_1 = require("sequelize");
5
+ const util_1 = require("../util");
6
+ function createMigrationModel() {
7
+ var _a;
8
+ return _a = class Migration extends sequelize_1.Model {
9
+ static initialize(sequelize) {
10
+ this.init({
11
+ ...this.GENESIS_ATTRIBUTES,
12
+ }, {
13
+ sequelize,
14
+ modelName: 'Migration',
15
+ tableName: 'migrations',
16
+ timestamps: true,
17
+ });
18
+ }
19
+ },
20
+ _a.GENESIS_ATTRIBUTES = {
21
+ id: {
22
+ type: sequelize_1.DataTypes.STRING(40),
23
+ primaryKey: true,
24
+ defaultValue: util_1.generateId,
25
+ },
26
+ script: {
27
+ type: sequelize_1.DataTypes.STRING(255),
28
+ allowNull: false,
29
+ },
30
+ version: {
31
+ type: sequelize_1.DataTypes.STRING(32),
32
+ allowNull: false,
33
+ },
34
+ executedAt: {
35
+ type: sequelize_1.DataTypes.DATE,
36
+ defaultValue: sequelize_1.DataTypes.NOW,
37
+ allowNull: false,
38
+ index: true,
39
+ },
40
+ createdAt: {
41
+ type: sequelize_1.DataTypes.DATE,
42
+ defaultValue: sequelize_1.DataTypes.NOW,
43
+ index: true,
44
+ },
45
+ updatedAt: {
46
+ type: sequelize_1.DataTypes.DATE,
47
+ defaultValue: sequelize_1.DataTypes.NOW,
48
+ index: true,
49
+ },
50
+ },
51
+ _a;
52
+ }
53
+ exports.createMigrationModel = createMigrationModel;
@@ -0,0 +1,4 @@
1
+ import { TNotification } from '@abtnode/types';
2
+ import { DynamicModel } from '../types';
3
+ export type NotificationState = TNotification & {};
4
+ export declare function createNotificationModel(): DynamicModel<NotificationState>;
@@ -0,0 +1,77 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.createNotificationModel = void 0;
4
+ const sequelize_1 = require("sequelize");
5
+ const util_1 = require("../util");
6
+ function createNotificationModel() {
7
+ var _a;
8
+ return _a = class Notification extends sequelize_1.Model {
9
+ static initialize(sequelize) {
10
+ this.init({
11
+ ...this.GENESIS_ATTRIBUTES,
12
+ }, {
13
+ sequelize,
14
+ modelName: 'Notification',
15
+ indexes: [{ fields: ['sender', 'id'] }, { fields: ['receiver', 'id'] }],
16
+ tableName: 'notifications',
17
+ timestamps: true,
18
+ });
19
+ }
20
+ },
21
+ _a.GENESIS_ATTRIBUTES = {
22
+ id: {
23
+ type: sequelize_1.DataTypes.STRING(40),
24
+ primaryKey: true,
25
+ defaultValue: util_1.generateId,
26
+ },
27
+ sender: {
28
+ type: sequelize_1.DataTypes.STRING(40),
29
+ allowNull: false,
30
+ },
31
+ receiver: {
32
+ type: sequelize_1.DataTypes.STRING(40),
33
+ allowNull: false,
34
+ },
35
+ title: {
36
+ type: sequelize_1.DataTypes.STRING(255),
37
+ allowNull: false,
38
+ },
39
+ description: {
40
+ type: sequelize_1.DataTypes.TEXT,
41
+ allowNull: false,
42
+ },
43
+ action: {
44
+ type: sequelize_1.DataTypes.STRING(255),
45
+ allowNull: false,
46
+ },
47
+ entityType: {
48
+ type: sequelize_1.DataTypes.STRING(32),
49
+ allowNull: false,
50
+ },
51
+ entityId: {
52
+ type: sequelize_1.DataTypes.STRING(40),
53
+ allowNull: false,
54
+ },
55
+ severity: {
56
+ type: sequelize_1.DataTypes.STRING(32),
57
+ allowNull: false,
58
+ },
59
+ read: {
60
+ type: sequelize_1.DataTypes.BOOLEAN,
61
+ defaultValue: false,
62
+ allowNull: false,
63
+ },
64
+ createdAt: {
65
+ type: sequelize_1.DataTypes.DATE,
66
+ defaultValue: sequelize_1.DataTypes.NOW,
67
+ index: true,
68
+ },
69
+ updatedAt: {
70
+ type: sequelize_1.DataTypes.DATE,
71
+ defaultValue: sequelize_1.DataTypes.NOW,
72
+ index: true,
73
+ },
74
+ },
75
+ _a;
76
+ }
77
+ exports.createNotificationModel = createNotificationModel;
@@ -0,0 +1,8 @@
1
+ import { TPassport } from '@abtnode/types';
2
+ import { DynamicModel } from '../types';
3
+ export type PassportState = TPassport & {
4
+ firstLoginAt: Date;
5
+ lastLoginAt: Date;
6
+ lastLoginIp: string;
7
+ };
8
+ export declare function createPassportModel(): DynamicModel<PassportState>;
@@ -0,0 +1,89 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.createPassportModel = void 0;
4
+ const sequelize_1 = require("sequelize");
5
+ function createPassportModel() {
6
+ var _a;
7
+ return _a = class Passport extends sequelize_1.Model {
8
+ static initialize(sequelize) {
9
+ this.init({
10
+ ...this.GENESIS_ATTRIBUTES,
11
+ }, {
12
+ sequelize,
13
+ modelName: 'Passport',
14
+ tableName: 'passports',
15
+ timestamps: false,
16
+ });
17
+ }
18
+ static associate(models) {
19
+ Passport.belongsTo(models.User, {
20
+ foreignKey: 'userDid',
21
+ as: 'user',
22
+ });
23
+ }
24
+ },
25
+ _a.GENESIS_ATTRIBUTES = {
26
+ id: {
27
+ type: sequelize_1.DataTypes.STRING(40),
28
+ primaryKey: true,
29
+ },
30
+ userDid: {
31
+ type: sequelize_1.DataTypes.STRING(40),
32
+ index: true,
33
+ references: {
34
+ model: 'users',
35
+ key: 'did',
36
+ },
37
+ },
38
+ type: {
39
+ type: sequelize_1.DataTypes.JSON,
40
+ allowNull: false,
41
+ },
42
+ issuer: {
43
+ type: sequelize_1.DataTypes.JSON,
44
+ allowNull: false,
45
+ },
46
+ specVersion: {
47
+ type: sequelize_1.DataTypes.STRING(16),
48
+ defaultValue: '1.0.0',
49
+ },
50
+ name: {
51
+ type: sequelize_1.DataTypes.STRING(32),
52
+ index: true,
53
+ allowNull: false,
54
+ },
55
+ title: {
56
+ type: sequelize_1.DataTypes.STRING(32),
57
+ allowNull: false,
58
+ },
59
+ endpoint: {
60
+ type: sequelize_1.DataTypes.STRING(512),
61
+ },
62
+ status: {
63
+ type: sequelize_1.DataTypes.STRING(16),
64
+ index: true,
65
+ defaultValue: 'valid',
66
+ },
67
+ role: {
68
+ type: sequelize_1.DataTypes.STRING(32),
69
+ allowNull: false,
70
+ },
71
+ firstLoginAt: {
72
+ type: sequelize_1.DataTypes.DATE,
73
+ },
74
+ lastLoginAt: {
75
+ type: sequelize_1.DataTypes.DATE,
76
+ },
77
+ lastLoginIp: {
78
+ type: sequelize_1.DataTypes.STRING,
79
+ },
80
+ issuanceDate: {
81
+ type: sequelize_1.DataTypes.DATE,
82
+ },
83
+ expirationDate: {
84
+ type: sequelize_1.DataTypes.DATE,
85
+ },
86
+ },
87
+ _a;
88
+ }
89
+ exports.createPassportModel = createPassportModel;
@@ -0,0 +1,13 @@
1
+ import { DynamicModel } from '../types';
2
+ export type RbacState = {
3
+ id: string;
4
+ name: string;
5
+ title: string;
6
+ description: string;
7
+ extra: any;
8
+ type: string;
9
+ grants: string[];
10
+ createdAt: Date;
11
+ updatedAt: Date;
12
+ };
13
+ export declare function createRbacModel(): DynamicModel<RbacState>;
@@ -0,0 +1,65 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.createRbacModel = void 0;
4
+ const sequelize_1 = require("sequelize");
5
+ const util_1 = require("../util");
6
+ function createRbacModel() {
7
+ var _a;
8
+ return _a = class Rbac extends sequelize_1.Model {
9
+ static initialize(sequelize) {
10
+ this.init({
11
+ ...this.GENESIS_ATTRIBUTES,
12
+ }, {
13
+ sequelize,
14
+ indexes: [{ fields: ['name', 'id'] }],
15
+ modelName: 'Rbac',
16
+ tableName: 'permissions',
17
+ timestamps: true,
18
+ });
19
+ }
20
+ },
21
+ // CAUTION: do not edit this
22
+ _a.GENESIS_ATTRIBUTES = {
23
+ id: {
24
+ type: sequelize_1.DataTypes.STRING(40),
25
+ primaryKey: true,
26
+ defaultValue: util_1.generateId,
27
+ },
28
+ name: {
29
+ type: sequelize_1.DataTypes.STRING(64),
30
+ allowNull: false,
31
+ index: true,
32
+ },
33
+ title: {
34
+ type: sequelize_1.DataTypes.STRING(64),
35
+ },
36
+ description: {
37
+ type: sequelize_1.DataTypes.STRING(255),
38
+ },
39
+ extra: {
40
+ type: sequelize_1.DataTypes.JSON,
41
+ },
42
+ type: {
43
+ type: sequelize_1.DataTypes.STRING(16),
44
+ allowNull: false,
45
+ index: true,
46
+ },
47
+ grants: {
48
+ type: sequelize_1.DataTypes.JSON,
49
+ allowNull: false,
50
+ defaultValue: [],
51
+ },
52
+ createdAt: {
53
+ type: sequelize_1.DataTypes.DATE,
54
+ defaultValue: sequelize_1.DataTypes.NOW,
55
+ index: true,
56
+ },
57
+ updatedAt: {
58
+ type: sequelize_1.DataTypes.DATE,
59
+ defaultValue: sequelize_1.DataTypes.NOW,
60
+ index: true,
61
+ },
62
+ },
63
+ _a;
64
+ }
65
+ exports.createRbacModel = createRbacModel;
@@ -0,0 +1,10 @@
1
+ import { TNodeState } from '@abtnode/types';
2
+ import { DynamicModel } from '../types';
3
+ export type ServerState = Omit<TNodeState, 'environments' | 'uptime'> & {
4
+ sk: string;
5
+ runtimeConfig: Record<string, any>;
6
+ customBlockletNumber: number;
7
+ previousMode: Date;
8
+ updatedAt: Date;
9
+ };
10
+ export declare function createServerModel(): DynamicModel<ServerState>;