cloud-ide-model-schema
Version:
Pachage for schema management of Cloud IDEsys LMS
75 lines (74 loc) • 1.78 kB
JavaScript
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.CApiKey = void 0;
var mongoose_1 = require("mongoose");
var api_keys = new mongoose_1.Schema({
akey_name: {
type: String,
required: true,
maxlength: 100,
trim: true
},
akey_api_key: {
type: String,
required: true,
maxlength: 500,
unique: true
},
akey_api_secret: {
type: String,
maxlength: 500
},
akey_permissions: {
type: [String],
default: []
},
akey_rate_limit: {
requests_per_minute: {
type: Number,
min: 0
},
requests_per_hour: {
type: Number,
min: 0
},
requests_per_day: {
type: Number,
min: 0
}
},
akey_expiry_date: {
type: Date
},
akey_last_used: {
type: Date
},
akey_status: {
type: String,
required: true,
enum: ['active', 'revoked', 'expired'],
default: 'active'
},
akey_created_by: {
type: mongoose_1.default.Schema.Types.ObjectId,
ref: "auth_user_mst"
},
akey_created_at: {
type: Date,
default: Date.now
},
akey_updated_at: {
type: Date,
default: Date.now
},
akey_isactive: {
type: Boolean,
default: true
}
}, { collection: 'api_keys', timestamps: { createdAt: 'akey_created_at', updatedAt: 'akey_updated_at' } });
// Indexes
api_keys.index({ akey_name: 1 });
api_keys.index({ akey_status: 1 });
// Note: akey_api_key index is automatically created by unique: true
var CApiKey = mongoose_1.default.model("api_keys", api_keys);
exports.CApiKey = CApiKey;