Skip to content

Commit

Permalink
Init models for permission, service account, and service account key
Browse files Browse the repository at this point in the history
  • Loading branch information
dangtony98 committed Mar 17, 2023
1 parent 3ac98ba commit 273f422
Show file tree
Hide file tree
Showing 4 changed files with 117 additions and 3 deletions.
22 changes: 22 additions & 0 deletions backend/src/models/permission.ts
Original file line number Diff line number Diff line change
@@ -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;
48 changes: 48 additions & 0 deletions backend/src/models/serviceAccount.ts
Original file line number Diff line number Diff line change
@@ -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;
44 changes: 44 additions & 0 deletions backend/src/models/serviceAccountKey.ts
Original file line number Diff line number Diff line change
@@ -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;
6 changes: 3 additions & 3 deletions docker-compose.dev.yml
Original file line number Diff line number Diff line change
Expand Up @@ -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:
Expand Down

0 comments on commit 273f422

Please sign in to comment.