diff --git a/backend/src/models/permission.ts b/backend/src/models/permission.ts new file mode 100644 index 000000000..6218aaf3a --- /dev/null +++ b/backend/src/models/permission.ts @@ -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( + { + name: { + type: String, + required: true + } + }, + { + timestamps: true + } +); + +const Permission = model('Permission', permissionSchema); + +export default Permission; \ No newline at end of file diff --git a/backend/src/models/serviceAccount.ts b/backend/src/models/serviceAccount.ts new file mode 100644 index 000000000..6ce62f3af --- /dev/null +++ b/backend/src/models/serviceAccount.ts @@ -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( + { + 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('ServiceAcount', serviceAccountSchema); + +export default ServiceAccount; \ No newline at end of file diff --git a/backend/src/models/serviceAccountKey.ts b/backend/src/models/serviceAccountKey.ts new file mode 100644 index 000000000..e54d176d6 --- /dev/null +++ b/backend/src/models/serviceAccountKey.ts @@ -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( + { + 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('ServiceAccountKey', serviceAccountSchema); + +export default ServiceAccountKey; diff --git a/docker-compose.dev.yml b/docker-compose.dev.yml index 7e904cd14..287e80945 100644 --- a/docker-compose.dev.yml +++ b/docker-compose.dev.yml @@ -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: