@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.
- package/README.md +1 -0
- package/lib/index.d.ts +5 -0
- package/lib/index.js +21 -0
- package/lib/migrate.d.ts +13 -0
- package/lib/migrate.js +127 -0
- package/lib/migrations/blocklet/20230422000000-genesis.js +21 -0
- package/lib/migrations/certificate-manager/20230422000000-genesis.js +19 -0
- package/lib/migrations/connect/20230422000000-genesis.js +13 -0
- package/lib/migrations/server/20230422000000-genesis.js +45 -0
- package/lib/migrations/service/20230422000000-genesis.js +13 -0
- package/lib/models/access-key.d.ts +6 -0
- package/lib/models/access-key.js +56 -0
- package/lib/models/account.d.ts +11 -0
- package/lib/models/account.js +56 -0
- package/lib/models/audit-log.d.ts +7 -0
- package/lib/models/audit-log.js +79 -0
- package/lib/models/backup.d.ts +6 -0
- package/lib/models/backup.js +72 -0
- package/lib/models/blocklet-extra.d.ts +7 -0
- package/lib/models/blocklet-extra.js +63 -0
- package/lib/models/blocklet.d.ts +6 -0
- package/lib/models/blocklet.js +120 -0
- package/lib/models/cache.d.ts +8 -0
- package/lib/models/cache.js +44 -0
- package/lib/models/certificate.d.ts +7 -0
- package/lib/models/certificate.js +70 -0
- package/lib/models/connected-account.d.ts +8 -0
- package/lib/models/connected-account.js +59 -0
- package/lib/models/connection.d.ts +23 -0
- package/lib/models/connection.js +89 -0
- package/lib/models/http-challenge.d.ts +9 -0
- package/lib/models/http-challenge.js +49 -0
- package/lib/models/index.d.ts +63 -0
- package/lib/models/index.js +149 -0
- package/lib/models/job.d.ts +13 -0
- package/lib/models/job.js +62 -0
- package/lib/models/message.d.ts +9 -0
- package/lib/models/message.js +54 -0
- package/lib/models/migration.d.ts +6 -0
- package/lib/models/migration.js +53 -0
- package/lib/models/notification.d.ts +4 -0
- package/lib/models/notification.js +77 -0
- package/lib/models/passport.d.ts +8 -0
- package/lib/models/passport.js +89 -0
- package/lib/models/rbac.d.ts +13 -0
- package/lib/models/rbac.js +65 -0
- package/lib/models/server.d.ts +10 -0
- package/lib/models/server.js +130 -0
- package/lib/models/session.d.ts +10 -0
- package/lib/models/session.js +54 -0
- package/lib/models/site.d.ts +8 -0
- package/lib/models/site.js +62 -0
- package/lib/models/user.d.ts +6 -0
- package/lib/models/user.js +105 -0
- package/lib/models/webhook.d.ts +6 -0
- package/lib/models/webhook.js +47 -0
- package/lib/states/base.d.ts +40 -0
- package/lib/states/base.js +144 -0
- package/lib/states/factory.d.ts +1 -0
- package/lib/states/factory.js +21 -0
- package/lib/types.d.ts +49 -0
- package/lib/types.js +2 -0
- package/lib/util.d.ts +6 -0
- package/lib/util.js +108 -0
- package/package.json +58 -0
package/README.md
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
# Blocklet Server Models
|
package/lib/index.d.ts
ADDED
package/lib/index.js
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
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
|
+
__exportStar(require("./models"), exports);
|
|
18
|
+
__exportStar(require("./migrate"), exports);
|
|
19
|
+
__exportStar(require("./states/base"), exports);
|
|
20
|
+
__exportStar(require("./states/factory"), exports);
|
|
21
|
+
__exportStar(require("./util"), exports);
|
package/lib/migrate.d.ts
ADDED
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
export declare function doSchemaMigration(dbFile: string, group: string): Promise<import("umzug").MigrationMeta[]>;
|
|
2
|
+
type DataMigrationArgs = {
|
|
3
|
+
srcDir: string;
|
|
4
|
+
dbFile: string;
|
|
5
|
+
mapping: Record<string, string>;
|
|
6
|
+
models: Record<string, any>;
|
|
7
|
+
printInfo?: Function;
|
|
8
|
+
printError?: Function;
|
|
9
|
+
printSuccess?: Function;
|
|
10
|
+
};
|
|
11
|
+
export declare function doDataMigration({ srcDir, dbFile, mapping, models, printInfo, // eslint-disable-line no-console
|
|
12
|
+
printError, printSuccess, }: DataMigrationArgs): Promise<void>;
|
|
13
|
+
export {};
|
package/lib/migrate.js
ADDED
|
@@ -0,0 +1,127 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.doDataMigration = exports.doSchemaMigration = void 0;
|
|
7
|
+
/* eslint-disable no-await-in-loop */
|
|
8
|
+
/* eslint-disable no-continue */
|
|
9
|
+
const lodash_get_1 = __importDefault(require("lodash.get"));
|
|
10
|
+
const fs_1 = require("fs");
|
|
11
|
+
const path_1 = require("path");
|
|
12
|
+
const core_1 = require("@nedb/core");
|
|
13
|
+
const umzug_1 = require("umzug");
|
|
14
|
+
const models_1 = require("./models");
|
|
15
|
+
const MIGRATION_SCRIPT_EXTENSION = process.env.MIGRATION_SCRIPT_EXTENSION || 'js';
|
|
16
|
+
async function doSchemaMigration(dbFile, group) {
|
|
17
|
+
const sequelize = (0, models_1.createSequelize)(dbFile);
|
|
18
|
+
if (['server', 'blocklet', 'service', 'certificate-manager', 'connect'].includes(group) === false) {
|
|
19
|
+
throw new Error(`Not supported group ${group} when migrate database schema`);
|
|
20
|
+
}
|
|
21
|
+
const umzug = new umzug_1.Umzug({
|
|
22
|
+
migrations: { glob: [`migrations/${group}/*.${MIGRATION_SCRIPT_EXTENSION}`, { cwd: __dirname }] },
|
|
23
|
+
context: sequelize.getQueryInterface(),
|
|
24
|
+
storage: new umzug_1.SequelizeStorage({ sequelize }),
|
|
25
|
+
logger: process.env.NODE_ENV === 'test' ? undefined : console,
|
|
26
|
+
});
|
|
27
|
+
return umzug.up();
|
|
28
|
+
}
|
|
29
|
+
exports.doSchemaMigration = doSchemaMigration;
|
|
30
|
+
async function doDataMigration({ srcDir, dbFile, mapping, models, printInfo = console.info, // eslint-disable-line no-console
|
|
31
|
+
printError = console.error, printSuccess = console.info, // eslint-disable-line no-console
|
|
32
|
+
}) {
|
|
33
|
+
const sequelize = (0, models_1.createSequelize)(dbFile);
|
|
34
|
+
Object.values(mapping).forEach((x) => {
|
|
35
|
+
if (models[x]) {
|
|
36
|
+
models[x].initialize(sequelize);
|
|
37
|
+
}
|
|
38
|
+
});
|
|
39
|
+
// Init hidden models
|
|
40
|
+
['Passport', 'ConnectedAccount'].forEach((x) => {
|
|
41
|
+
if (models[x]) {
|
|
42
|
+
models[x].initialize(sequelize);
|
|
43
|
+
}
|
|
44
|
+
});
|
|
45
|
+
const files = (0, fs_1.readdirSync)(srcDir).filter((file) => file.endsWith('.db'));
|
|
46
|
+
for (const file of files) {
|
|
47
|
+
const tableName = file.slice(0, -3);
|
|
48
|
+
const modelName = mapping[tableName];
|
|
49
|
+
if (!modelName) {
|
|
50
|
+
printInfo(`No mapping found for NeDB file: ${file}. Skipping.`);
|
|
51
|
+
continue;
|
|
52
|
+
}
|
|
53
|
+
const model = models[modelName];
|
|
54
|
+
if (!model) {
|
|
55
|
+
printInfo(`No Sequelize model found for NeDB file: ${file}. Skipping.`);
|
|
56
|
+
continue;
|
|
57
|
+
}
|
|
58
|
+
const filename = (0, path_1.join)(srcDir, file);
|
|
59
|
+
try {
|
|
60
|
+
const db = new core_1.DataStore({ filename, autoload: true });
|
|
61
|
+
const docs = await db.find({});
|
|
62
|
+
// Insert data into Sequelize database
|
|
63
|
+
for (const doc of docs) {
|
|
64
|
+
const newData = {
|
|
65
|
+
...doc,
|
|
66
|
+
id: doc._id,
|
|
67
|
+
createdAt: new Date(doc.createdAt || doc.created),
|
|
68
|
+
updatedAt: new Date(doc.updatedAt || doc.updated),
|
|
69
|
+
};
|
|
70
|
+
if (!newData.id) {
|
|
71
|
+
delete newData.id;
|
|
72
|
+
}
|
|
73
|
+
// Hack: 1-time-use data split to multiple tables
|
|
74
|
+
if (modelName === 'User') {
|
|
75
|
+
// rename fields
|
|
76
|
+
newData.sourceProvider = newData.sourceProvider || (0, lodash_get_1.default)(newData, 'extraConfigs.sourceProvider') || 'wallet';
|
|
77
|
+
// split fields
|
|
78
|
+
const passports = (newData.passports || []).filter((p) => p.id);
|
|
79
|
+
const connectedAccounts = (0, lodash_get_1.default)(newData, 'extraConfigs.connectedAccounts') ||
|
|
80
|
+
[
|
|
81
|
+
{
|
|
82
|
+
provider: 'wallet',
|
|
83
|
+
did: newData.did,
|
|
84
|
+
pk: newData.pk,
|
|
85
|
+
lastLoginAt: newData.lastLoginAt,
|
|
86
|
+
firstLoginAt: newData.firstLoginAt,
|
|
87
|
+
},
|
|
88
|
+
].filter((a) => a.provider && a.did);
|
|
89
|
+
try {
|
|
90
|
+
await model.create(newData);
|
|
91
|
+
await Promise.all(passports.map((p) => models.Passport.create({ ...p, userDid: newData.did })));
|
|
92
|
+
await Promise.all(connectedAccounts.map((a) => models.ConnectedAccount.create({ ...a, userDid: newData.did })));
|
|
93
|
+
printInfo(`Import user into sqlite: ${newData.did}`);
|
|
94
|
+
}
|
|
95
|
+
catch (err) {
|
|
96
|
+
printError('Error importing user into sqlite:', err, doc);
|
|
97
|
+
}
|
|
98
|
+
}
|
|
99
|
+
else {
|
|
100
|
+
// Hack: 1-time-use data transformation
|
|
101
|
+
if (modelName === 'Site') {
|
|
102
|
+
if (Array.isArray(doc.domainAliases)) {
|
|
103
|
+
newData.domainAliases = doc.domainAliases.map((x) => {
|
|
104
|
+
if (typeof x === 'string') {
|
|
105
|
+
return { value: x, isProtected: false };
|
|
106
|
+
}
|
|
107
|
+
return x;
|
|
108
|
+
});
|
|
109
|
+
}
|
|
110
|
+
}
|
|
111
|
+
try {
|
|
112
|
+
await model.create(newData);
|
|
113
|
+
printInfo(`Import data into sqlite ${modelName}:`, doc._id);
|
|
114
|
+
}
|
|
115
|
+
catch (err) {
|
|
116
|
+
printError('Error importing data into sqlite:', err);
|
|
117
|
+
}
|
|
118
|
+
}
|
|
119
|
+
}
|
|
120
|
+
printSuccess(`Migrated data from nedb ${filename} to sqlite ${modelName}.`);
|
|
121
|
+
}
|
|
122
|
+
catch (err) {
|
|
123
|
+
printError(`Error reading data from NeDB file ${filename}: ${err.message}`);
|
|
124
|
+
}
|
|
125
|
+
}
|
|
126
|
+
}
|
|
127
|
+
exports.doDataMigration = doDataMigration;
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.down = exports.up = void 0;
|
|
4
|
+
const models_1 = require("../../models");
|
|
5
|
+
const models = (0, models_1.getBlockletModels)();
|
|
6
|
+
const up = async ({ context }) => {
|
|
7
|
+
await context.createTable('permissions', models.Rbac.GENESIS_ATTRIBUTES);
|
|
8
|
+
await context.createTable('sessions', models.Session.GENESIS_ATTRIBUTES);
|
|
9
|
+
await context.createTable('users', models.User.GENESIS_ATTRIBUTES);
|
|
10
|
+
await context.createTable('passports', models.Passport.GENESIS_ATTRIBUTES);
|
|
11
|
+
await context.createTable('connected_accounts', models.ConnectedAccount.GENESIS_ATTRIBUTES);
|
|
12
|
+
};
|
|
13
|
+
exports.up = up;
|
|
14
|
+
const down = async ({ context }) => {
|
|
15
|
+
await context.dropTable('permissions');
|
|
16
|
+
await context.dropTable('sessions');
|
|
17
|
+
await context.dropTable('users');
|
|
18
|
+
await context.dropTable('passports');
|
|
19
|
+
await context.dropTable('connected_accounts');
|
|
20
|
+
};
|
|
21
|
+
exports.down = down;
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.down = exports.up = void 0;
|
|
4
|
+
const models_1 = require("../../models");
|
|
5
|
+
const models = (0, models_1.getCertificateManagerModels)();
|
|
6
|
+
const up = async ({ context }) => {
|
|
7
|
+
await context.createTable('accounts', models.Account.GENESIS_ATTRIBUTES);
|
|
8
|
+
await context.createTable('certificates', models.Certificate.GENESIS_ATTRIBUTES);
|
|
9
|
+
await context.createTable('http_challenges', models.HttpChallenge.GENESIS_ATTRIBUTES);
|
|
10
|
+
await context.createTable('jobs', models.Job.GENESIS_ATTRIBUTES);
|
|
11
|
+
};
|
|
12
|
+
exports.up = up;
|
|
13
|
+
const down = async ({ context }) => {
|
|
14
|
+
await context.dropTable('accounts');
|
|
15
|
+
await context.dropTable('certificates');
|
|
16
|
+
await context.dropTable('http_challenges');
|
|
17
|
+
await context.dropTable('jobs');
|
|
18
|
+
};
|
|
19
|
+
exports.down = down;
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.down = exports.up = void 0;
|
|
4
|
+
const models_1 = require("../../models");
|
|
5
|
+
const models = (0, models_1.getConnectModels)();
|
|
6
|
+
const up = async ({ context }) => {
|
|
7
|
+
await context.createTable('connections', models.Connection.GENESIS_ATTRIBUTES);
|
|
8
|
+
};
|
|
9
|
+
exports.up = up;
|
|
10
|
+
const down = async ({ context }) => {
|
|
11
|
+
await context.dropTable('connections');
|
|
12
|
+
};
|
|
13
|
+
exports.down = down;
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.down = exports.up = void 0;
|
|
4
|
+
const models_1 = require("../../models");
|
|
5
|
+
const models = (0, models_1.getServerModels)();
|
|
6
|
+
const up = async ({ context }) => {
|
|
7
|
+
await context.createTable('access_keys', models.AccessKey.GENESIS_ATTRIBUTES);
|
|
8
|
+
await context.createTable('audit_logs', models.AuditLog.GENESIS_ATTRIBUTES);
|
|
9
|
+
await context.createTable('blocklet_extras', models.BlockletExtra.GENESIS_ATTRIBUTES);
|
|
10
|
+
await context.createTable('blocklets', models.Blocklet.GENESIS_ATTRIBUTES);
|
|
11
|
+
await context.createTable('caches', models.Cache.GENESIS_ATTRIBUTES);
|
|
12
|
+
await context.createTable('jobs', models.Job.GENESIS_ATTRIBUTES);
|
|
13
|
+
await context.createTable('migrations', models.Migration.GENESIS_ATTRIBUTES);
|
|
14
|
+
await context.createTable('notifications', models.Notification.GENESIS_ATTRIBUTES);
|
|
15
|
+
await context.createTable('permissions', models.Rbac.GENESIS_ATTRIBUTES);
|
|
16
|
+
await context.createTable('servers', models.Server.GENESIS_ATTRIBUTES);
|
|
17
|
+
await context.createTable('sessions', models.Session.GENESIS_ATTRIBUTES);
|
|
18
|
+
await context.createTable('sites', models.Site.GENESIS_ATTRIBUTES);
|
|
19
|
+
await context.createTable('users', models.User.GENESIS_ATTRIBUTES);
|
|
20
|
+
await context.createTable('passports', models.Passport.GENESIS_ATTRIBUTES);
|
|
21
|
+
await context.createTable('connected_accounts', models.ConnectedAccount.GENESIS_ATTRIBUTES);
|
|
22
|
+
await context.createTable('webhooks', models.WebHook.GENESIS_ATTRIBUTES);
|
|
23
|
+
await context.createTable('backups', models.Backup.GENESIS_ATTRIBUTES);
|
|
24
|
+
};
|
|
25
|
+
exports.up = up;
|
|
26
|
+
const down = async ({ context }) => {
|
|
27
|
+
await context.dropTable('access_keys');
|
|
28
|
+
await context.dropTable('audit_logs');
|
|
29
|
+
await context.dropTable('blocklet_extras');
|
|
30
|
+
await context.dropTable('blocklets');
|
|
31
|
+
await context.dropTable('caches');
|
|
32
|
+
await context.dropTable('jobs');
|
|
33
|
+
await context.dropTable('migrations');
|
|
34
|
+
await context.dropTable('notifications');
|
|
35
|
+
await context.dropTable('permissions');
|
|
36
|
+
await context.dropTable('servers');
|
|
37
|
+
await context.dropTable('sessions');
|
|
38
|
+
await context.dropTable('sites');
|
|
39
|
+
await context.dropTable('users');
|
|
40
|
+
await context.dropTable('passports');
|
|
41
|
+
await context.dropTable('connected_accounts');
|
|
42
|
+
await context.dropTable('webhooks');
|
|
43
|
+
await context.dropTable('backups');
|
|
44
|
+
};
|
|
45
|
+
exports.down = down;
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.down = exports.up = void 0;
|
|
4
|
+
const models_1 = require("../../models");
|
|
5
|
+
const models = (0, models_1.getServiceModels)();
|
|
6
|
+
const up = async ({ context }) => {
|
|
7
|
+
await context.createTable('messages', models.Message.GENESIS_ATTRIBUTES);
|
|
8
|
+
};
|
|
9
|
+
exports.up = up;
|
|
10
|
+
const down = async ({ context }) => {
|
|
11
|
+
await context.dropTable('messages');
|
|
12
|
+
};
|
|
13
|
+
exports.down = down;
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.createAccessKeyModel = void 0;
|
|
4
|
+
const sequelize_1 = require("sequelize");
|
|
5
|
+
function createAccessKeyModel() {
|
|
6
|
+
var _a;
|
|
7
|
+
return _a = class AccessKey extends sequelize_1.Model {
|
|
8
|
+
static initialize(sequelize) {
|
|
9
|
+
this.init({ ...this.GENESIS_ATTRIBUTES }, {
|
|
10
|
+
sequelize,
|
|
11
|
+
modelName: 'AccessKey',
|
|
12
|
+
tableName: 'access_keys',
|
|
13
|
+
timestamps: true,
|
|
14
|
+
});
|
|
15
|
+
}
|
|
16
|
+
},
|
|
17
|
+
// CAUTION: DO NOT EDIT THIS
|
|
18
|
+
_a.GENESIS_ATTRIBUTES = {
|
|
19
|
+
accessKeyId: {
|
|
20
|
+
type: sequelize_1.DataTypes.STRING(40),
|
|
21
|
+
primaryKey: true,
|
|
22
|
+
unique: true,
|
|
23
|
+
},
|
|
24
|
+
accessKeyPublic: {
|
|
25
|
+
type: sequelize_1.DataTypes.STRING(256),
|
|
26
|
+
},
|
|
27
|
+
passport: {
|
|
28
|
+
type: sequelize_1.DataTypes.STRING(16),
|
|
29
|
+
},
|
|
30
|
+
remark: {
|
|
31
|
+
type: sequelize_1.DataTypes.STRING(128),
|
|
32
|
+
},
|
|
33
|
+
createdBy: {
|
|
34
|
+
type: sequelize_1.DataTypes.STRING(40),
|
|
35
|
+
},
|
|
36
|
+
updatedBy: {
|
|
37
|
+
type: sequelize_1.DataTypes.STRING(40),
|
|
38
|
+
},
|
|
39
|
+
createdAt: {
|
|
40
|
+
type: sequelize_1.DataTypes.DATE,
|
|
41
|
+
defaultValue: sequelize_1.DataTypes.NOW,
|
|
42
|
+
},
|
|
43
|
+
updatedAt: {
|
|
44
|
+
type: sequelize_1.DataTypes.DATE,
|
|
45
|
+
defaultValue: sequelize_1.DataTypes.NOW,
|
|
46
|
+
index: true,
|
|
47
|
+
},
|
|
48
|
+
lastUsedAt: {
|
|
49
|
+
type: sequelize_1.DataTypes.DATE,
|
|
50
|
+
defaultValue: sequelize_1.DataTypes.NOW,
|
|
51
|
+
index: true,
|
|
52
|
+
},
|
|
53
|
+
},
|
|
54
|
+
_a;
|
|
55
|
+
}
|
|
56
|
+
exports.createAccessKeyModel = createAccessKeyModel;
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { DynamicModel } from '../types';
|
|
2
|
+
export type AccountState = {
|
|
3
|
+
id: string;
|
|
4
|
+
directoryUrl: string;
|
|
5
|
+
private_key: object;
|
|
6
|
+
account: object;
|
|
7
|
+
maintainer_email: string;
|
|
8
|
+
createdAt: Date;
|
|
9
|
+
updatedAt: Date;
|
|
10
|
+
};
|
|
11
|
+
export declare function createAccountModel(): DynamicModel<AccountState>;
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.createAccountModel = void 0;
|
|
4
|
+
// Storage for multi-queue job storage
|
|
5
|
+
const sequelize_1 = require("sequelize");
|
|
6
|
+
const util_1 = require("../util");
|
|
7
|
+
function createAccountModel() {
|
|
8
|
+
var _a;
|
|
9
|
+
return _a = class Account extends sequelize_1.Model {
|
|
10
|
+
static initialize(sequelize) {
|
|
11
|
+
this.init({
|
|
12
|
+
...this.GENESIS_ATTRIBUTES,
|
|
13
|
+
}, {
|
|
14
|
+
sequelize,
|
|
15
|
+
modelName: 'Account',
|
|
16
|
+
tableName: 'accounts',
|
|
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
|
+
directoryUrl: {
|
|
28
|
+
type: sequelize_1.DataTypes.STRING(255),
|
|
29
|
+
unique: true,
|
|
30
|
+
allowNull: false,
|
|
31
|
+
},
|
|
32
|
+
private_key: {
|
|
33
|
+
type: sequelize_1.DataTypes.JSON,
|
|
34
|
+
allowNull: false,
|
|
35
|
+
},
|
|
36
|
+
account: {
|
|
37
|
+
type: sequelize_1.DataTypes.JSON,
|
|
38
|
+
allowNull: false,
|
|
39
|
+
},
|
|
40
|
+
maintainer_email: {
|
|
41
|
+
type: sequelize_1.DataTypes.STRING(255),
|
|
42
|
+
},
|
|
43
|
+
createdAt: {
|
|
44
|
+
type: sequelize_1.DataTypes.DATE,
|
|
45
|
+
defaultValue: sequelize_1.DataTypes.NOW,
|
|
46
|
+
index: true,
|
|
47
|
+
},
|
|
48
|
+
updatedAt: {
|
|
49
|
+
type: sequelize_1.DataTypes.DATE,
|
|
50
|
+
defaultValue: sequelize_1.DataTypes.NOW,
|
|
51
|
+
index: true,
|
|
52
|
+
},
|
|
53
|
+
},
|
|
54
|
+
_a;
|
|
55
|
+
}
|
|
56
|
+
exports.createAccountModel = createAccountModel;
|
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.createAuditLogModel = void 0;
|
|
4
|
+
const sequelize_1 = require("sequelize");
|
|
5
|
+
const util_1 = require("../util");
|
|
6
|
+
function createAuditLogModel() {
|
|
7
|
+
var _a;
|
|
8
|
+
return _a = class AuditLog extends sequelize_1.Model {
|
|
9
|
+
static initialize(sequelize) {
|
|
10
|
+
this.init({
|
|
11
|
+
...this.GENESIS_ATTRIBUTES,
|
|
12
|
+
}, {
|
|
13
|
+
sequelize,
|
|
14
|
+
modelName: 'AuditLog',
|
|
15
|
+
tableName: 'audit_logs',
|
|
16
|
+
timestamps: true,
|
|
17
|
+
});
|
|
18
|
+
}
|
|
19
|
+
},
|
|
20
|
+
// CAUTION: DO NOT EDIT THIS
|
|
21
|
+
_a.GENESIS_ATTRIBUTES = {
|
|
22
|
+
id: {
|
|
23
|
+
type: sequelize_1.DataTypes.STRING(40),
|
|
24
|
+
primaryKey: true,
|
|
25
|
+
defaultValue: util_1.generateId,
|
|
26
|
+
},
|
|
27
|
+
scope: {
|
|
28
|
+
type: sequelize_1.DataTypes.STRING(64),
|
|
29
|
+
allowNull: false,
|
|
30
|
+
index: true,
|
|
31
|
+
},
|
|
32
|
+
action: {
|
|
33
|
+
type: sequelize_1.DataTypes.STRING(64),
|
|
34
|
+
allowNull: false,
|
|
35
|
+
},
|
|
36
|
+
category: {
|
|
37
|
+
type: sequelize_1.DataTypes.STRING(64),
|
|
38
|
+
allowNull: false,
|
|
39
|
+
index: true,
|
|
40
|
+
},
|
|
41
|
+
content: {
|
|
42
|
+
type: sequelize_1.DataTypes.TEXT,
|
|
43
|
+
allowNull: false,
|
|
44
|
+
},
|
|
45
|
+
actor: {
|
|
46
|
+
type: sequelize_1.DataTypes.JSON,
|
|
47
|
+
allowNull: false,
|
|
48
|
+
index: true,
|
|
49
|
+
},
|
|
50
|
+
extra: {
|
|
51
|
+
type: sequelize_1.DataTypes.JSON,
|
|
52
|
+
allowNull: false,
|
|
53
|
+
},
|
|
54
|
+
env: {
|
|
55
|
+
type: sequelize_1.DataTypes.JSON,
|
|
56
|
+
allowNull: false,
|
|
57
|
+
},
|
|
58
|
+
ip: {
|
|
59
|
+
type: sequelize_1.DataTypes.STRING(32),
|
|
60
|
+
allowNull: true,
|
|
61
|
+
},
|
|
62
|
+
ua: {
|
|
63
|
+
type: sequelize_1.DataTypes.STRING(512),
|
|
64
|
+
allowNull: true,
|
|
65
|
+
},
|
|
66
|
+
createdAt: {
|
|
67
|
+
type: sequelize_1.DataTypes.DATE,
|
|
68
|
+
defaultValue: sequelize_1.DataTypes.NOW,
|
|
69
|
+
index: true,
|
|
70
|
+
},
|
|
71
|
+
updatedAt: {
|
|
72
|
+
type: sequelize_1.DataTypes.DATE,
|
|
73
|
+
defaultValue: sequelize_1.DataTypes.NOW,
|
|
74
|
+
index: true,
|
|
75
|
+
},
|
|
76
|
+
},
|
|
77
|
+
_a;
|
|
78
|
+
}
|
|
79
|
+
exports.createAuditLogModel = createAuditLogModel;
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.createBackupModel = void 0;
|
|
4
|
+
const sequelize_1 = require("sequelize");
|
|
5
|
+
const util_1 = require("../util");
|
|
6
|
+
function createBackupModel() {
|
|
7
|
+
var _a;
|
|
8
|
+
return _a = class Backup extends sequelize_1.Model {
|
|
9
|
+
static initialize(sequelize) {
|
|
10
|
+
this.init({
|
|
11
|
+
...this.GENESIS_ATTRIBUTES,
|
|
12
|
+
}, {
|
|
13
|
+
sequelize,
|
|
14
|
+
modelName: 'Backup',
|
|
15
|
+
tableName: 'backups',
|
|
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
|
+
appPid: {
|
|
27
|
+
type: sequelize_1.DataTypes.STRING(40),
|
|
28
|
+
index: true,
|
|
29
|
+
},
|
|
30
|
+
userDid: {
|
|
31
|
+
type: sequelize_1.DataTypes.STRING(40),
|
|
32
|
+
index: true,
|
|
33
|
+
},
|
|
34
|
+
strategy: {
|
|
35
|
+
type: sequelize_1.DataTypes.TINYINT,
|
|
36
|
+
defaultValue: 0,
|
|
37
|
+
unsigned: true,
|
|
38
|
+
},
|
|
39
|
+
sourceUrl: {
|
|
40
|
+
type: sequelize_1.DataTypes.STRING(512),
|
|
41
|
+
defaultValue: '',
|
|
42
|
+
},
|
|
43
|
+
target: {
|
|
44
|
+
type: sequelize_1.DataTypes.STRING(16),
|
|
45
|
+
defaultValue: 'Spaces',
|
|
46
|
+
},
|
|
47
|
+
targetUrl: {
|
|
48
|
+
type: sequelize_1.DataTypes.STRING(512),
|
|
49
|
+
defaultValue: '',
|
|
50
|
+
},
|
|
51
|
+
status: {
|
|
52
|
+
type: sequelize_1.DataTypes.TINYINT,
|
|
53
|
+
unsigned: true,
|
|
54
|
+
},
|
|
55
|
+
message: {
|
|
56
|
+
type: sequelize_1.DataTypes.TEXT,
|
|
57
|
+
defaultValue: '',
|
|
58
|
+
},
|
|
59
|
+
createdAt: {
|
|
60
|
+
type: sequelize_1.DataTypes.DATE,
|
|
61
|
+
defaultValue: sequelize_1.DataTypes.NOW,
|
|
62
|
+
index: true,
|
|
63
|
+
},
|
|
64
|
+
updatedAt: {
|
|
65
|
+
type: sequelize_1.DataTypes.DATE,
|
|
66
|
+
defaultValue: sequelize_1.DataTypes.NOW,
|
|
67
|
+
index: true,
|
|
68
|
+
},
|
|
69
|
+
},
|
|
70
|
+
_a;
|
|
71
|
+
}
|
|
72
|
+
exports.createBackupModel = createBackupModel;
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { TBlockletExtra } from '@abtnode/types';
|
|
2
|
+
import { DynamicModel } from '../types';
|
|
3
|
+
export type BlockletExtraState = TBlockletExtra & {
|
|
4
|
+
createdAt: Date;
|
|
5
|
+
updatedAt: Date;
|
|
6
|
+
};
|
|
7
|
+
export declare function createBlockletExtraModel(): DynamicModel<BlockletExtraState>;
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.createBlockletExtraModel = void 0;
|
|
4
|
+
const sequelize_1 = require("sequelize");
|
|
5
|
+
function createBlockletExtraModel() {
|
|
6
|
+
var _a;
|
|
7
|
+
return _a = class BlockletExtra extends sequelize_1.Model {
|
|
8
|
+
static initialize(sequelize) {
|
|
9
|
+
this.init({ ...this.GENESIS_ATTRIBUTES }, {
|
|
10
|
+
sequelize,
|
|
11
|
+
modelName: 'BlockletExtra',
|
|
12
|
+
tableName: 'blocklet_extras',
|
|
13
|
+
timestamps: true,
|
|
14
|
+
});
|
|
15
|
+
}
|
|
16
|
+
},
|
|
17
|
+
// CAUTION: DO NOT EDIT THIS
|
|
18
|
+
_a.GENESIS_ATTRIBUTES = {
|
|
19
|
+
did: {
|
|
20
|
+
type: sequelize_1.DataTypes.STRING(40),
|
|
21
|
+
primaryKey: true,
|
|
22
|
+
},
|
|
23
|
+
appDid: {
|
|
24
|
+
type: sequelize_1.DataTypes.STRING(40),
|
|
25
|
+
unique: true,
|
|
26
|
+
index: true,
|
|
27
|
+
},
|
|
28
|
+
meta: {
|
|
29
|
+
type: sequelize_1.DataTypes.JSON,
|
|
30
|
+
defaultValue: {},
|
|
31
|
+
},
|
|
32
|
+
controller: {
|
|
33
|
+
type: sequelize_1.DataTypes.JSON,
|
|
34
|
+
},
|
|
35
|
+
configs: {
|
|
36
|
+
type: sequelize_1.DataTypes.JSON,
|
|
37
|
+
defaultValue: [],
|
|
38
|
+
},
|
|
39
|
+
children: {
|
|
40
|
+
type: sequelize_1.DataTypes.JSON,
|
|
41
|
+
defaultValue: [],
|
|
42
|
+
},
|
|
43
|
+
settings: {
|
|
44
|
+
type: sequelize_1.DataTypes.JSON,
|
|
45
|
+
defaultValue: {},
|
|
46
|
+
},
|
|
47
|
+
expiredAt: {
|
|
48
|
+
type: sequelize_1.DataTypes.STRING(30),
|
|
49
|
+
},
|
|
50
|
+
createdAt: {
|
|
51
|
+
type: sequelize_1.DataTypes.DATE,
|
|
52
|
+
defaultValue: sequelize_1.DataTypes.NOW,
|
|
53
|
+
index: true,
|
|
54
|
+
},
|
|
55
|
+
updatedAt: {
|
|
56
|
+
type: sequelize_1.DataTypes.DATE,
|
|
57
|
+
defaultValue: sequelize_1.DataTypes.NOW,
|
|
58
|
+
index: true,
|
|
59
|
+
},
|
|
60
|
+
},
|
|
61
|
+
_a;
|
|
62
|
+
}
|
|
63
|
+
exports.createBlockletExtraModel = createBlockletExtraModel;
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import { TBlockletState } from '@abtnode/types';
|
|
2
|
+
import { DynamicModel } from '../types';
|
|
3
|
+
export type BlockletState = Omit<TBlockletState, 'port' | 'configs' | 'trustedFactories' | 'trustedPassports' | 'enablePassportIssuance' | 'dynamic' | 'mountPoint'> & {
|
|
4
|
+
updatedAt: Date;
|
|
5
|
+
};
|
|
6
|
+
export declare function createBlockletModel(): DynamicModel<BlockletState>;
|