Init models for permission, service account, and service account key

This commit is contained in:
Tuan Dang
2023-03-17 10:43:14 +07:00
parent 3ac98ba326
commit 273f4228d7
4 changed files with 117 additions and 3 deletions

View File

@ -0,0 +1,22 @@
import { Schema, model, Types, Document } from 'mongoose';
export interface IPermission extends Document {
_id: Types.ObjectId;
name: string;
}
const permissionSchema = new Schema<IPermission>(
{
name: {
type: String,
required: true
}
},
{
timestamps: true
}
);
const Permission = model<IPermission>('Permission', permissionSchema);
export default Permission;

View File

@ -0,0 +1,48 @@
import { Schema, model, Types, Document } from 'mongoose';
export interface IServiceAccount extends Document {
_id: Types.ObjectId;
name: string;
isActive: boolean;
organization: Types.ObjectId;
createdBy: Types.ObjectId;
publicKey: string;
expiresAt: Date;
}
const serviceAccountSchema = new Schema<IServiceAccount>(
{
name: {
type: String,
required: true
},
isActive: {
type: Boolean,
required: true
},
organization: {
type: Schema.Types.ObjectId,
ref: 'Organization',
required: true
},
createdBy: {
type: Schema.Types.ObjectId,
ref: 'User',
required: true
},
publicKey: {
type: String,
required: true
},
expiresAt: {
type: Date
}
},
{
timestamps: true
}
);
const ServiceAccount = model<IServiceAccount>('ServiceAcount', serviceAccountSchema);
export default ServiceAccount;

View File

@ -0,0 +1,44 @@
import { Schema, model, Types } from 'mongoose';
export interface IServiceAccountKey {
_id: Types.ObjectId;
encryptedKey: string;
nonce: string;
sender: Types.ObjectId;
serviceAccount: Types.ObjectId;
workspace: Types.ObjectId;
}
const serviceAccountSchema = new Schema<IServiceAccountKey>(
{
encryptedKey: {
type: String,
required: true
},
nonce: {
type: String,
required: true
},
sender: {
type: Schema.Types.ObjectId,
required: true
},
serviceAccount: {
type: Schema.Types.ObjectId,
ref: 'ServiceAccount',
required: true
},
workspace: {
type: Schema.Types.ObjectId,
ref: 'Workspace',
required: true
}
},
{
timestamps: true
}
);
const ServiceAccountKey = model<IServiceAccountKey>('ServiceAccountKey', serviceAccountSchema);
export default ServiceAccountKey;

View File

@ -81,9 +81,9 @@ services:
- mongo
env_file: .env
environment:
- ME_CONFIG_MONGODB_ADMINUSERNAME=${MONGO_USERNAME}
- ME_CONFIG_MONGODB_ADMINPASSWORD=${MONGO_PASSWORD}
- ME_CONFIG_MONGODB_URL=mongodb://${MONGO_USERNAME}:${MONGO_PASSWORD}@mongo:27017/
- ME_CONFIG_MONGODB_ADMINUSERNAME=root
- ME_CONFIG_MONGODB_ADMINPASSWORD=example
- ME_CONFIG_MONGODB_URL=mongodb://root:example@mongo:27017/
ports:
- 8081:8081
networks: